Архивирование большого количества файлов / одного большого файла

Я хочу сжать около 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

Это довольно хорошее сжатие. Но знаете ли вы лучший алгоритм сжатия?

2
задан 23 May 2015 в 17:23

2 ответа

Единственное решение, о котором я знаю, 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> в архиве

В качестве награды Вы сохраните права доступа также, так как файлы смолятся сначала!

0
ответ дан 23 May 2015 в 17:23

Я подставляю, только думают об одном решении для Вас: Сделайте новый раздел, с btrfs файловой системой и активируйте прозрачное сжатие. Следует иметь в виду tha некоторые люди все еще considder btrfs "экспериментальная" файловая система. Однако мой вторичный резервный жесткий диск использует btrfs (немного больше 2 лет), и до сих пор это дало мне 0 проблем. Но как обычный YMMV.

Это и это должно запустить Вас с btrfs, если Вы уже не знакомы с ним.

0
ответ дан 23 May 2015 в 17:23

Другие вопросы по тегам:

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