如何將多個檔案壓縮為 .xz 檔案?

如何將多個檔案壓縮為 .xz 檔案?

我想將多個影像壓縮到 .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.

在此範例中,我使用高級壓縮 ( -9to xz) 和詳細輸出 ( vto tar, -vto 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) 的這篇文章以及tarxz線上幫助頁。

答案3

使用此命令:tar cJf <archive.tar.xz> <files>.用空格分隔檔案路徑。

相關內容