Как использовать tar с lz4?

Как использовать tar и фильтровать архив через LZ4? Или любые доступные инструменты? Использование tar cvf folderABC.tar folderABC && lz4c -c0 folderABC.tar выглядит громоздко.

PS: *среда nix


person Daniel    schedule 05.06.2014    source источник


Ответы (3)


lz4 имеет структуру командной строки, похожую на gzip. Поэтому что-то вроде этого будет работать:

tar cvf - folderABC | lz4 > folderABC.tar.lz4

or

tar cvf - folderABC | lz4 - folderABC.tar.lz4

Первый сжимает молча, как gzip. Второй немного более специфичен для lz4 и также будет отображать сводную статистику сжатия.

person Cyan    schedule 06.06.2014
comment
Есть ли стандартный способ добавить CRC32 в tar.lz4 для обнаружения поврежденных файлов? - person user643011; 03.07.2016
comment
lz4 уже по умолчанию применяет 32-битную контрольную сумму для обнаружения повреждений. Он основан на XXH32. - person Cyan; 04.07.2016
comment
Благодарность! Я использовал его для резервного копирования своего домашнего каталога gist.github.com/timabell/68d112d66623d9a4a3643c86a93debee - person Tim Abell; 15.03.2018
comment
Возможно, вам потребуется установить lz4 для Ubuntu. sudo apt-get install liblz4-tool - person Shivangi Singh; 24.03.2021

В GNU tar вы можете использовать -I lz4

Похоже, что и FreeBSD, и GNU tar также поддерживают --use-compress-program=lz4.

tar -I lz4 -cf archive.tar.lz4 stuff to add to archive
tar -I lz4 -xf archive.tar.lz4

or

tar --use-compress-program=lz4 -cf archive.tar.lz4 stuff to add to archive
tar --use-compress-program=lz4 -xf archive.tar.lz4
person Gert van den Berg    schedule 12.11.2019
comment
@Gaia Обычно я бы использовал -cf и -xf. Не уверен, что он переносим на версии, отличные от GNU tar, поэтому я сохранил стиль вопроса. (отредактированный ответ) - person Gert van den Berg; 06.12.2019

Чтобы использовать -I в GNU tar, вы должны указать его ПОСЛЕ целевого файла следующим образом:

tar cvf /path/to/destinationfile.tar.lz4 -I lz4 /path/to/archive
person JTerry    schedule 09.04.2021