
我想將多個影像壓縮到 .xz 檔案中。我怎麼做?
答案1
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
.
答案2
雖然作為tar cJf archive files...
Zacharee1 詳細介紹和通過 希梅爾通常是您想要做的,另一種方法是將壓縮資料透過管道傳輸到xz
命令:
tar c files... | xz > archive.tar.xz
自從Ubuntu的tar
支援J
選項,當您希望將選項傳遞給xz
.
在此範例中,我使用高級壓縮 ( -9
to xz
) 和詳細輸出 ( v
to tar
, -v
to xz
) 來 tar 和 xzip 一些 TIFF 檔案:
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
它們最終生成的文件應該是相同的(並且當我測試它時)。
- 在第一個中,輸出
tar
是管道式的(|
) 至輸入的xz
。幾乎立即xz
接收數據tar
,並且不會創建中間未壓縮的 tar 檔案。這就是說第一種方式本質上是等價的到tar cJf archive files...
,除了傳遞給 的附加參數xz
。 xz
在第二個命令中,第一個命令會建立未壓縮的 tar 存檔,然後在第二個命令中壓縮。 (xz
完成後自動刪除原始文件,除非使用-k
/呼叫--keep
。)
如需進一步閱讀,請參閱拉斐爾·範·霍恩 (Rafael van Horn) 的這篇文章以及tar
和xz
線上幫助頁。
答案3
使用此命令:tar cJf <archive.tar.xz> <files>
.用空格分隔檔案路徑。