Почему этот пустой каталог 3,5 МБ?

16

Я только что прочитал этот вопрос: что означает размер каталога в выводе команды 'ls -l'?

... который не совсем отвечает на мой вопрос. По сути, я перемещаю файлы на NAS. Папки, которые я уже переместил, полностью пусты, без скрытых файлов или чего-либо еще, и все duже сообщают, что их размер составляет 3,5 МБ. По общему признанию, они ранее содержали большое количество файлов с длинными именами файлов.

Является ли этот размер просто из-за количества и длины имени файлов, которые были в этом каталоге? Почему размер не уменьшился теперь, когда папки пусты (файловая система ext4)?

shearn89
источник
1
du склонен мыслить иначе, чем люди, он выдает отчет, основанный на некоторых настройках файловой системы. Вы можете проверить с помощью '--apparent-size' здесь: gnu.org/software/coreutils/manual/html_node/du-invocation.html .
Герман Ингальдссон
Когда вы копируете вновь созданные пустые каталоги в NAS, что они сообщают об их размерах? Также у вас есть доступ к NAS, где вы можете запустить tune2fs, например?
SLM
Вы учитывали снимки?
mdpc
@slm - они имеют нормальный размер 4096 (байт?).
shearn89
@mdpc - снимки?
shearn89

Ответы:

16

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

Если каталог пуст,

rmdir ./directory_name; mkdir ./directory

В результате новый каталог будет меньше. Но по мере добавления файлов оно будет увеличиваться. Не беспокойтесь о размере файла каталога, а также о количестве файлов в одном каталоге. Огромное количество файлов в одном каталоге отрицательно влияет на производительность поиска файлов. Даже с достаточным кэшированием inode.

Джим Макнамара
источник
4
Большое количество файлов в 1 каталоге действительно имеет значение только для файловых систем ext. Другие, такие как xfs, btrfs, reiser и т. Д., Не имеют такой же проблемы.
Патрик
2
Это верно. Однако у НФ есть проблема, как и у других. Хотя этот вопрос строго ext4, проблема повсеместна, поэтому я упомянул об этом.
Джим Макнамара
Помимо проблем с производительностью, размещение слишком большого количества файлов в каталоге может вызвать другие проблемы - выполнение rm *может привести к проблемам, если у вас более 1024 файлов.
Шон МакSomething
@SeanMcSomething Какие проблемы вы имеете в виду?
Хатшепсут
1
@SeanMcSomething Я понятия не имею, откуда ты взял это дерьмо. Командная строка процесса может быть половиной мегабайта или более. Это не имеет никакого отношения к количеству файлов, общий размер командной строки имеет ограничение, которое, как вы говорите, намного выше.
peterh - Восстановить Монику