Есть ли способ сжать очень большой каталог в EXT2 / EXT3 без простого переделывания каталога?
Я помню что Perlfunc предупреждает, что реализации ОС seekdir
и telldir
рискуют сжать каталог. что звучит так, как я хочу в данном случае, но я не знаком с этой семантикой на практике.
задний план: У меня есть несколько каталогов, которые сами по себе имеют размер много МБ - в прошлом они были переполнены миллионом маленьких файлов:
$ ls -lh
drwxr-x--- 2 root root 1.3M Oct 5 12:49 big
drwxr-x--- 2 root root 2.3M Oct 5 12:49 this_one_is_empty_now
drwxr-x--- 2 root root 6.1M Oct 5 12:49 yikes
Каталоги онлайн не сжимаются точно так как требований seekdir / telldir. Они требуют, чтобы любая программа могла сохранять позицию в каталоге в течение неопределенного времени и при этом читать любую заданную запись только один раз; поэтому записи нельзя перемещать, пока смонтирована файловая система.
Вы можете сжать каталог в автономном режиме с помощью e2fsck -D
.
Вы заглянули в свинья? Это улучшенный gzip.
Джон Олспоу рассказывает об этом в своем блоге здесь:
http://www.kitchensoap.com/2010/04/02/pigz-parallel-gzip-omg/