Я хочу стиснути кілька зображень в архіві .xz. Як це зробити?
Я хочу стиснути кілька зображень в архіві .xz. Як це зробити?
Відповіді:
Хоча як це детально описано Zacharee1 та heemayl, це те, що ви хочете зробити, інший спосіб - передавати дані команди в команду:tar cJf archive files...xz
tar c files... | xz > archive.tar.xz
Оскільки Ubuntu tarпідтримує цю Jопцію, цей альтернативний спосіб особливо корисний, коли ви хочете передати варіанти xz.
У цьому прикладі я націлюю та xzip деякі файли TIFF з високим рівнем стиснення ( -9до xz) та багатослівного виведення ( vдо tar, -vдо xz):
ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
100 % 207.3 KiB / 290.0 KiB = 0.715
Це, звичайно, можна зробити також у два чітко окремі кроки:
ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
100 % 207.3 KiB / 290.0 KiB = 0.715
Ці два способи фактично не є рівнозначними в тому, як вони діють, хоча .tar.xzфайли, які вони створюють, зрештою, повинні бути однаковими (і були, коли я тестував це).
tarIS конвеєр ( |) на вхід в xz. xzотримує дані tarмайже одразу, і жоден проміжний нестиснений файл tar не створюється. Це говорить про те, що перший спосіб, по суті , еквівалентно , щобtar cJf archive files... , за винятком додаткових аргументів , переданих за винятком xz.xzу другій команді. ( xzавтоматично видаляє вихідний файл, коли це зроблено, якщо тільки не викликається з -k/ --keep.)Для подальшого читання дивіться цю публікацію Рафаеля ван Хорна та програми tarта та вікна xz.
tar -J- це вказати змінну середовища XZ_OPT, зробивши виклик приблизно таким чином:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Використовувати tarз -Jопцією:
tar -cvJf images.tar.xz /directory/containing/images/*
tar використовується для об'єднання декількох файлів в один (Архів), і тоді нам потрібно стиснути архів за допомогою алгоритму стиснення XZ.
Від man tar:
-c, --create
create a new archive
-v, --verbose
verbosely list files processed
-J, --xz
-f, --file ARCHIVE
use archive file or device ARCHIVE
Також зауважте, що images.tar.xzбуде створено в поточному каталозі, якщо ви хочете зберегти його де-небудь ще /full/path/to/images.tar.xz.
xzє найповільнішим серед xz, gzip, bzip2з - за його більш високу ступінь стиснення , ніж others..the повільність варто мати справу з , якщо ви хочете більше стиснення ..
Використовуйте цю команду: tar cJf <archive.tar.xz> <files>. Відокремте шляхи до файлу з пробілом.
-cfJ
-в front..from man tar: A function letter need not be prefixed with ``-''..so tar cJfабсолютно нормально.
tar cJf, це дасть ОП інший спосіб зробити це, оскільки моя відповідь tar --cvJfспочатку вже висвітлена ..