Почему мог размер “точечного” файла “.” превышать 4096?

Едва ли ответ на этот точный вопрос, но могло бы быть хорошо знать. Использовать zsh ;-)

% echo $((65320./670))
97.492537313432834
9
21.08.2018, 03:54
1 ответ

Точечный файл, как каждый каталог, содержит список названий файлов в этом каталоге и их inode числах. Таким образом, если бы у Вас когда-то было много файлов в том каталоге (не вряд ли для "tmp" каталога), который заставил бы запись каталога вырасти до этого размера.

После того, как файлов не стало, файловая система автоматически не уменьшает файл каталога снова.

Можно экспериментировать с этим сами путем создания нового пустого каталога, сделать ls -la в нем для наблюдения начального размера (4096 на моей машине) затем touchлуг много файлов, которые заставят размер каталога вырасти.

(Да я знаю, что придаю блеск по / неточному о большом количестве деталей здесь. Но OP не попросил полное объяснение того, как РАСШИРЕНИЕ* файловые системы работает.)

14
27.01.2020, 20:06
  • 1
    Спасибо, это, кажется, объясняет явление. Два вопроса только из любопытства: Когда файл каталога уменьшился бы снова? И есть ли способ показать содержание того файла? –  Martin Hennings 21.11.2012, 12:31
  • 2
    (1) Видит также unix.stackexchange.com/questions/38639 / … - короткий ответ, удаляет каталог и воссоздает его. –  Bristol 21.11.2012, 12:41
  • 3
    (2) К сожалению, больше. Это раньше было возможно на старых версиях UNIX. –  Bristol 21.11.2012, 12:47
  • 4
    Можно также работать e2fsck -D в файловой системе, но это требует, чтобы она была размонтирована. –  psusi 21.11.2012, 21:52
  • 5
    @Bristol debugfs может быть проницательным –  Volker Siegel 20.07.2014, 08:56

Теги

Похожие вопросы