Я хочу сжать около 100 000 файлов (это то, что говорит find . -type f | wc -l
) с общим использованием диска в 100 ГБ. Большинство файлов небольшие, но лишь немногие из них составляют около 70 ГБ из 100 ГБ.
Я не хочу использовать tar или tar.gz для этого, потому что, если я хочу получить доступ к архиву, File Roller сначала должен прочитать весь архив с внешнего жесткого диска, прежде чем я смогу увидеть список файлов. То же самое, если я попытаюсь перечислить файлы на терминале.
Мне не нужно управление правами tar, потому что я помню несколько файлов, которым нужны другие права, чем другие. Какой алгоритм сжатия я должен использовать?
И пока я на нем: я делаю полное резервное копирование диска с помощью этой команды:
dd if=/dev/sda bs=32M | gzip -9 > /location/dateAndMachineName.gz
Это довольно хорошее сжатие. Но знаете ли вы лучший алгоритм сжатия?
Единственное решение, о котором я знаю, pixz (sudo apt-get install pixz
) , вариант xz использование заблокированного кодера, который допускает быстро случайный acccess/indexing. Кроме того, это - параллельный метод с помощью нескольких ядер для сжатия.
Цитирование документов:
существующие XZ Utils ( http://tukaani.org/xz/ ) обеспечивают большое сжатие в .xz формате файла, но у них есть две значительных проблемы:
- Они являются однопоточными, в то время как у большинства пользователей в наше время есть многоядерные компьютеры.
- .xz файлы, которые они производят, являются всего одним большим блоком сжатых данных, а не набором меньших блоков. Это делает произвольный доступ к исходным данным невозможным.
С pixz, обе этих проблемы решены.
Использование просто:
tar -Ipixz -cf foo.tpxz foo
для сжатия папки foo
pixz -l foo.tpxz
для списка файлов в нем (быстро!)
pixz -x <file_path> < foo.tpxz | tar x
для извлечения единственного файла, учитывая <file_path>
в архиве
В качестве награды Вы сохраните права доступа также, так как файлы смолятся сначала!
Я подставляю, только думают об одном решении для Вас: Сделайте новый раздел, с btrfs файловой системой и активируйте прозрачное сжатие. Следует иметь в виду tha некоторые люди все еще considder btrfs "экспериментальная" файловая система. Однако мой вторичный резервный жесткий диск использует btrfs (немного больше 2 лет), и до сих пор это дало мне 0 проблем. Но как обычный YMMV.
Это и это должно запустить Вас с btrfs, если Вы уже не знакомы с ним.