Почему папка весит больше, чем файлы в ней

Обновлено: 21.11.2024

Как говорит тема; Я хочу знать, почему каждый каталог имеет размер 4 КБ, даже если они содержат файлы размером более 4 КБ.

Пожалуйста, взгляните на следующее:-

PS: мне известна утилита командной строки du -sh.

Редактировать: я предполагаю, что каталог является контейнером для файлов.

3 ответа 3

  • Не вдаваясь в технические подробности, считайте запись каталога просто "ссылкой" на список файлов, "содержащихся" в каталоге.
  • Затем, как и во всем остальном, ls показывает размер этой ссылки, а не общее пространство, занимаемое содержимым каталога.
  • Минимальный размер файла или записи каталога/ссылки, который должен занимать один блок, обычно составляет 4096 байт/4 КБ в большинстве файловых систем ext3/4.

Вы говорите, что "минимальный размер файла или записи каталога/ссылки должен занимать один блок", но я уверен, что видел файлы размером менее 4 КБ.

@LakshayGarg, хотя размер файла может быть меньше 4 КБ, это вызовет так называемую «внутреннюю фрагментацию», когда для хранения небольшого файла используется всего несколько байтов блока.

@phyloflash некоторые файловые системы (например, NTFS) хранят небольшие файлы в самих записях файлов (для NTFS это в записи MFT). Таким образом, их содержимое не занимает выделенных блоков, а внутренняя фрагментация уменьшается.

Чтобы понять это, вам лучше иметь некоторые базовые знания о следующем (файловая система):

  • inode (содержит атрибуты файла, метаданные файла, структуру указателя)
  • файл (можно рассматривать как таблицу с двумя столбцами, именем файла и его индексным узлом, индексный дескриптор указывает на блоки необработанных данных на блочном устройстве)
  • каталог (просто специальный файл, контейнер для других имен файлов. Он содержит массив имен файлов и номеров инодов для каждого имени файла. Также он описывает отношения между родителем и дочерними элементами.)
  • символическая ссылка VS жесткая ссылка
  • dentry (записи каталога)
  • .

В типичной файловой системе ext4 (которую использует большинство людей) размер inode по умолчанию составляет 256 байт, размер блока — 4096 байт.

Каталог — это просто специальный файл, который содержит массив имен файлов и номеров инодов. Когда каталог был создан, файловая система выделила 1 индексный дескриптор для каталога с «именем файла» (на самом деле имя каталога). Индекс указывает на один блок данных (минимальные служебные данные), который составляет 4096 байт. Вот почему вы видите 4096 / 4.0K при использовании ls .

Жесткие диски продолжают увеличиваться в размерах, как и то, что мы на них храним. Существуют ограничения по размеру, но это не те ограничения, о которых следует беспокоиться большинству людей.

Не могли бы вы сказать мне, существует ли ограничение на размер одной папки? Например, папка с фильмами или музыкой может занимать довольно много гигабайт! Есть ли ограничение?

Конечно, есть ограничения.

Первое ограничение, с которым сталкивается большинство людей, – это размер их жесткого диска, но если у вас достаточно большой диск, могут возникнуть и другие ограничения.

Однако скажу сразу: размер файлов в одной папке оказывается не одним из них.

Ограничения размера файла

Не существует практических ограничений на общий размер всех файлов в папке, хотя могут быть ограничения на количество файлов в папке.

Что еще более важно, существуют ограничения на размер отдельных файлов, которые зависят от файловой системы, используемой на вашем жестком диске.

Файловая система — это не что иное, как спецификация того, как файлы хранятся на диске. На практике это обычно является синонимом «формата», так как это выбор, сделанный при форматировании диска. Ограничения являются одним из факторов при выборе используемого формата диска.

FAT/FAT16

FAT (таблица размещения файлов) является преемником исходной файловой системы FAT12, которая поставлялась с MS-DOS много-много лет назад.

  • Максимальный размер диска: 4 ГБ.
  • Максимальный размер файла: 4 ГБ.
  • Максимальное количество файлов на диске: 65 517.
  • Максимальное количество файлов в одной папке: 512 (если я правильно помню, корневая папка «/» имела нижний предел 128).

FAT32

FAT32 была введена для преодоления некоторых ограничений FAT16.

  • Максимальный размер диска: 2 терабайта.
  • Максимальный размер файла: 4 ГБ.
  • Максимальное количество файлов на диске: 268 435 437
  • Максимальное количество файлов в одной папке: 65 534

NTFS

NTFS, или «файловая система новой технологии», была представлена ​​вместе с Windows NT и представляет собой полностью переработанную файловую систему, которая теперь является стандартной для большинства новых компьютеров с Windows.

  • Максимальный размер диска: 256 терабайт 1.
  • Максимальный размер файла: 256 терабайт.
  • Максимальное количество файлов на диске: 4 294 967 295
  • Максимальное количество файлов в одной папке: 4 294 967 295.

exFAT

exFAT — это расширение файловых систем FAT, изначально разработанное для встроенных систем и флэш-памяти. Хотя она и не так богата функциями, она более совместима с разными платформами и легче, чем NTFS.

  • Максимальный размер диска: 128 петабайт.
  • Максимальный размер файла: 16 экзабайт 2
  • Максимальное количество файлов на диске: 4 294 967 285
  • Максимальное количество файлов в одной папке: 2 796 202

Диски против дисков

Обратите внимание: когда я говорю "диск" выше, я действительно имею в виду "логические" диски, а не обязательно физические. Это проявляется двумя способами:

  • Разбиение диска на разделы может привести к тому, что один физический диск будет выглядеть как несколько логических дисков.
  • Несколько физических дисков можно организовать так, чтобы они отображались как один логический диск, используя различные методы, включая массивы RAID или чередование дисков.

Например, никто (в настоящее время) не производит дисковые накопители емкостью 256 терабайт, но с помощью этих методов вы можете обращаться с набором дисковых накопителей как с одним логическим диском. NTFS особенно подходит для этой задачи.

Прагматические ограничения

На самом деле размер вашего диска, или, скорее, объем доступного места на диске, почти всегда будет первым ограничением, которое вы достигнете.

Если размер отдельных файлов превышает 4 ГБ, избегайте файловых систем FAT, FAT16 и FAT32. NTFS и exFAT будут работать с отдельными файлами намного больше этого размера.

На самом деле нет ограничений на совокупный размер файлов в папке, хотя есть ограничения на количество файлов в папке.

Сделать это

Подпишитесь на Confident Computing! Меньше разочарований и больше уверенности, решения, ответы и советы в вашей почте каждую неделю.

Чтобы узнать размер компьютерного файла или папки, выберите свою операционную систему в списке ниже и следуйте инструкциям.

Пользователи Microsoft Windows

Ниже приведены различные шаги, которые можно предпринять, чтобы определить общий размер файла, нескольких файлов или папки на компьютере под управлением Microsoft Windows.

  1. Найдите и выделите файл(ы) или папку, размер которых вы хотите определить.
  2. Щелкните файл правой кнопкой мыши и выберите "Свойства".
  3. На изображении ниже показано, что вы можете определить размер файла или файлов, которые вы выделили, в окне свойств файла. В этом примере размер файла chrome.jpg составляет 18,5 КБ (19 032 байта), а размер на диске – 20,0 КБ (20 480 байт).

  1. Откройте Мой компьютер или проводник Windows.
  2. Заставьте Windows отображать свойства файла, нажав «Просмотр» в верхней части окна и выбрав «Подробности». После завершения этого действия Проводник отобразит все ваши файлы, их размеры, тип и дату последнего изменения.
  1. Откройте Мой компьютер или проводник Windows.
  2. Перейдите в каталог, содержащий ваш файл.
  3. Если вы хотите увидеть общее пространство текущего каталога, просмотрите размер каталога в правой части строки состояния. В противном случае выделите файл, размер которого вы хотите просмотреть, и посмотрите на строку состояния.

Вы также можете выбрать несколько файлов, и когда все нужные файлы будут выделены, щелкните правой кнопкой мыши любой из выделенных файлов и выберите "Свойства". В окне Свойства отображается общий размер всех файлов. См. раздел Как выбрать или выделить несколько файлов и папок.

пользователи macOS X

  1. Найдите файл или папку, размер которых вы хотите просмотреть.
  2. Нажмите на файл или папку.
  3. Нажмите Command + I на клавиатуре.
  4. Откроется окно, в котором будет показан размер файла или папки.

Пользователи командной строки MS-DOS и Windows

Следующие инструкции содержат информацию о различных методах, которые пользователь может использовать для просмотра размера файла или файлов в MS-DOS.

  1. Перейдите в каталог файла, размер которого вы хотите просмотреть.
    1. Оказавшись в каталоге, выполните одну из следующих команд.

    Приведенная выше команда показывает размер одного файла myfile.txt.

    Приведенная выше команда выводит список всех текстовых файлов в текущем каталоге, как показано на рисунке ниже.

    Как видно из приведенного выше примера, это показывает, что в текущем каталоге есть пять файлов txt общим размером 124 264 байта.

    • Дополнительные примеры подстановочных знаков см. в нашем определении подстановочных знаков.
    • Дополнительную информацию о каждой из этих команд см. на страницах команд cd и dir.

    Пользователи Linux и Unix

    Ниже приведены некоторые из различных методов, которые пользователь *nix может использовать для определения размера файла на своем компьютере.

    1. Перейдите в каталог файла, размер которого вы хотите просмотреть.
      1. Оказавшись в каталоге, выполните одну из следующих команд.

      Пример команды

      Управление одним выводом

      В приведенном выше примере вывода 11567230 — это размер файла. Для более удобного вывода используйте команду du, как показано ниже.

      Пример второй команды

      Вывод второй команды

      Если вы хотите увидеть общий размер нескольких файлов, введите следующее.

      Приведенный выше пример команды выводит список всех файлов .txt в текущем каталоге. В нем также указан размер каждого файла и общий размер всех файлов вместе взятых.

      Читайте также: