Назад | Перейти на главную страницу

Как сжать большие каталоги

Есть ли способ сжать очень большой каталог в 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/