Zips Command Line

之前整理過 7z 的命令行,這裡再集合整理一下 Unix 系統下其他的壓縮歸檔文件命令行。

tar

tar 命令在 Unix 系統下非常常用,它有多個壓縮率不同的版本,常見的有 tar.xztar.gz,前者的壓縮率更高,但存在兼容性問題。

單純的 tar 後綴代表未被壓縮的 tar 文件,已壓縮的 tar 文件會再追加一個擴展名,如:

  • .tar.gz 縮寫為 .tgz,代表經過 gzip 壓縮後的 tar 文件
  • .tbz.tb2.tar.bz2 縮寫,代表經過 bzip2 壓縮的 tar 文件
  • .tar.Z 縮寫為 .taz
  • .tar.lzma 縮寫為 .tlz
  • .tar.xz 縮寫為 .taz,代表經過 xz 壓縮的 tar 文件

參數

  • -c, --create:創建新的 tar 文件
  • -x, --extract, --get:解開 tar 文件
  • -t, --list:列出 tar 文件內容
  • -r, --append:附加新文件到 tar 文件中
  • -u, --update:更新 tar 文件
  • -A, --catenate, --concatenate:將 tar 文件作為一個整體追加到另一個 tar 文件中
  • -d, --diff, --compare:將文件系統中的文件與 tar 文件中的文件進行比較
  • --delete:刪除 tar 文件中的文件(不可用於已保存在磁帶上的 tar 文件)

Options

  • -v, --verbose:列出詳細信息,使用一個 v 僅列出文件名,使用兩個 v 列出文件詳細信息
  • -k, --keep-old-files:不刪除文件系統上已有文件
  • -f, --file:指定要處理的文件名,可使用 - 代表標準輸出或標準輸入
  • -P, --absolute-names:使用絕對路徑
  • -j, --bzip2:調用 bzip2 進行壓縮或解壓縮
  • -J, --xz, --lzma:調用 XZ Utils 執行壓縮或解壓縮
  • -z, --gzip, --gunzip, --ungzip:調用 gzip 進行壓縮或解壓縮
  • -Z, --compress, --uncompress:調用 compress 進行壓縮或解壓縮

gzip

gzip 代表 GNU zip,基礎是 DEFLATE。

文件格式:

  • 10 字節的頭,包含幻數、版本號和時間戳
  • 可選的擴展頭,如原文件名
  • 文件體,包括 DEFLATE 壓縮的數據
  • 8 字節的尾註,包括 CRC-32 較驗和以及未壓縮的原始數據長度

通常情況下,gzip 僅用來壓縮單個文件。多個文件壓縮歸檔時通常先將其合併成一個 tar 文檔,然後調用 gzip 進行壓縮。

ZIP 雖然也使用 DEFLATE 算法,並且可移植性更好,不需要 tar 進行歸檔,但是 ZIP 對每個文件進行單獨壓縮而不利用文件間的冗余信息,因此 ZIP 的壓縮率要低於 tar 壓縮包。

參數

  • -c, --stdout:解壓縮內容輸出到標準輸出,原文件保持不變
  • -d, --decompress:解壓縮
  • -f, --force:強制覆蓋舊文件
  • -l, --list:列出壓縮包內儲存的原始文件信息
  • -n, --no-name:壓縮時不保存原始文件的文件名和時間戳,解壓縮時不恢復原始文件的文件名和時間戳(解壓縮得到的文件是壓縮包的文件名)
  • -N, --name:壓縮時保存原始文件的文件名和時間戳,解壓縮時恢復原始文件名和時間戳
  • -q, --quiet:抑制所有警告信息
  • -r, --recursive:遞歸
  • -t, --test:測試壓縮文件完整性
  • -v, --verbose:冗余模式(顯示每一步執行內容)
  • -1, -2, ..., -9:壓縮率依次增大,速度依次減慢,默認為 -6

bzip2

基於數據塊排序算法,相對於 gzip,可以生成相當小的壓縮文件,但代價是 4 倍的內存和處理器時間消耗。但按照絕對壓縮效率來講,bzip2 不如 7z 和 RAR 格式。

bzip2 和 gzip 類似,只是一個數據壓縮工具,而不是歸檔工具,當進行多個文件壓縮時需要借助 tar 進行歸檔。

常用命令:

$ bzip2 file        // 壓縮文件
$ bzip2 -d file.bz2         // 解壓縮文件

其餘命令行參數同 gzip 類似。

xz

與 gzip 和 bzip2 一樣,通常作為一種歸檔文件的自身壓縮格式。

xz 層有過一個名為 pxz 的分支,提供多線程壓縮功能,後來 xz 自身直接提供多線程壓縮功能。

7-Zip 以及 RAR 均支持 xz 壓縮格式。

xz 通常出現在系統源文件的壓縮中,也是 Linux 內核的格式,2013 年開始 xz 正式做為發行內核源代碼的默認格式。

results matching ""

    No results matching ""