Tar

在執行“解壓縮 gcc.tar.Z &”時是否應該省略大寫 z?

  • January 24, 2021

在 Newham 和 Rosenblatt 撰寫的第三版*“學習 Bash shell”*中,第 19 頁提到了解壓縮名為gcc.tar.Z.

類型uncompress gcc.tar &(您可以省略 Z)。

為什麼作者說“你可以省略 Z”?為什麼不留著呢?…


man uncompressUbuntu 16.04 中,我找到了 Gunzip(“Gzip”)手冊,上面寫著:

如果壓縮文件名對其文件系統來說太長,gzip 會截斷它。Gzip 嘗試僅截斷文件名中超過 3 個字元的部分。

gunzip 在其命令行上獲取文件列表,並用未壓縮的文件替換名稱以 .gz、-gz、.z、-z 或 _z(忽略大小寫)結尾且以正確幻數開頭的每個文件原始擴展。gunzip 還將特殊副檔名 .tgz 和 .taz 分別辨識為 .tar.gz 和 .tar.Z 的簡寫。壓縮時,gzip 會在必要時使用 .tgz 副檔名,而不是截斷具有 .tar 副檔名的文件。

gunzip 有時能夠檢測到錯誤的 .Z

我承認我並不完全清楚為什麼該程序具有上述行為。

我不會說“應該”,但你當然可以,因為uncompress實用程序的file參數是這樣指定的,為了方便:

文件的路徑名。如果文件已經指定了**.Z後綴,則將其用作輸入文件,輸出文件應命名為去掉.Z 後綴的****文件。否則,文件應用作輸出文件的名稱,附加.Z後綴**的文件應用作輸入文件。

(我還沒有檢查過,但這很可能是預先存在的行為,延續到規範中。)

gzip至少在其預設.gz副檔名中也支持這一點:

echo Hello > test
gzip test
ls -l test*
gunzip test
ls -l test*
cat test

引用自:https://unix.stackexchange.com/questions/440073