У меня есть около 2 миллионов (60 ГБ) сжатых небольших файлов, и я хотел бы создать сжатый архив, содержащий все из них в несжатой версии. К сожалению, я не могу просто распаковать их все, а затем создать сжатый архив, так как у меня всего около 70 ГБ свободного дискового пространства. Другими словами, как я могу сделать эквивалент, tar --file-filter="zcat" zcf file.tar.gz directory
если параметр командной строки, как, например --file-filter
, не существует в GNU tar?
tar
disk-usage
compression
large-files
d33tah
источник
источник
gzip
? Комбинирование и сжатие экономит место, но вы получите гораздо больше, еслиxz
сжимаете в файл tar с -ed. Это вариант?Ответы:
Можно использовать вариант
avfs
(здесь предполагается, что система GNU):источник
Обратите внимание, что это хрупкое, когда дело доходит до грязных имен файлов.
Файлы временно распаковываются
$tmpdir
,cpio
затем передаются, как только они добавляются в архив, удаляются.источник
pigz
в качестве альтернативы gzip :)Вот что я попробовал до сих пор - похоже, работает, но очень медленно, даже с PyPy:
Применение:
find . | script.py | gzip > file.tar.gz
источник
|gzip
и несжатый файл не касался жесткого диска, поэтому, ИМХО, он не должен быть ТАКИМ медленным.tar
файл gzip объект.