如何在 Linux 中使用 gzip 命令
![如何在 Linux 中使用 gzip 命令](/img/Linux/feature-image---How-to-use-gzip-command-in-Linux.webp)
gzip
是一個命令列實用程式,允許我們建立和提取 .gz
檔案。gzip
命令為每個檔案建立一個壓縮檔案。如果我們想把多個檔案或一個目錄壓縮成一個壓縮檔案,我們需要使用 tar
命令建立一個 .tar
檔案,然後使用 gzip
命令壓縮 .tar
檔案。使用 gzip
命令壓縮音訊檔案、影象檔案和其他二進位制檔案不是特別推薦,因為它們已經被壓縮了。
gzip
語法
gzip [OPTION]... [FILE]...
[FILE]...
代表要壓縮的檔案,[OPTION]...
代表自定義壓縮或解壓過程的選項。
使用 gzip
壓縮檔案
使用 gzip
壓縮檔案的命令是
gzip filename
這將使用 gzip
將 filename
壓縮成 filename.gzip
並刪除原始檔案。
如果我們想保留原來的檔案,我們使用命令中的 -k
選項。
gzip -k main.py
它將檔案 main.py
壓縮成 main.py.gz
並保留原檔案。
另一種保留原始檔案的方法是使用 -c
選項,它引導 gzip
命令將輸出寫在標準輸出上,我們將標準輸出重定向到 .gzip
檔案。
gzip -c main.py > main.py.gz
同時,它還通過保留原檔案,將 main.py
檔案壓縮成 main.py.gz
。
為了得到詳細的輸出,我們使用 -v
選項。
gzip -v main.py
輸出:
main.py: 18.6% -- replaced with main.py.gz
從輸出結果中,我們可以看到壓縮過程中檔案大小減少的百分比。
使用 gzip
一次壓縮多個檔案
要使用 gzip
一次壓縮多個檔案,我們使用 gzip
命令,後面用空格隔開要壓縮的檔名。
gzip main.py file.py process.py
它將檔案 main.py
、file.py
和 process.py
壓縮成各自的 .gz
檔案,分別為 main.py.gz
、file.py.gz
和 process.py.gz
。
使用 gzip
壓縮一個目錄內的所有檔案
要使用 gzip
壓縮一個目錄內的所有檔案,我們使用 gzip
命令的 -r
選項。
gzip -r test_dir
它將 test_dir
內的每一個單獨的檔案壓縮成各自的壓縮檔案,以 .gz
結尾。
使用 gzip
解壓檔案
要使用 gzip
解壓 .gz
檔案,我們使用 gzip
命令的 -d
選項。
gzip -d filename.gz
它使用 gzip
將 filename.gz
解壓成 filename
並刪除壓縮後的檔案。
我們也可以用 gunzip
命令解壓 .gz
檔案。
gunzip main.py.gz
它用 gzip
將 main.py.gz
解壓成 main.py
,並刪除壓縮後的檔案 main.py.gz
。
如果我們想在解壓過程中也保留壓縮檔案,我們可以使用命令中的 -k
選項。
gzip -dk main.py.gz
它通過保留解壓後的檔案,將檔案 main.py.gz
解壓成 main.py
。
使用 gzip
一次解壓多個檔案
要使用 gzip
一次壓縮多個檔案,我們使用 gzip
命令,在 -d
選項後加上要解壓的檔名,並以空格分隔。
gzip -d main.py.gz file.py.gz process.py.gz
它將 main.py.gz
、file.py.gz
和 process.py.gz
檔案解壓成 main.py
、file.py
和 process.py
三個檔案。
使用 gzip
解壓一個目錄內的所有檔案
要使用 gzip
解壓一個目錄內的所有檔案,我們使用 gzip
命令中的 -r
選項和 -d
選項。
gzip -dr test_dir
它將 test_dir
內的每一個單獨的壓縮檔案解壓成各自的解壓檔案。
使用 gzip
命令列出壓縮檔案的詳細資訊
當使用 -l
選項時,gzip
命令也可以用來獲取壓縮檔案的詳細資訊。
gzip -l main.py.gz
輸出:
compressed uncompressed ratio uncompressed_name
28 0 0.0% main.py
它列出了所有關於 main.py.gz
檔案的細節。
為了獲得更多的細節,我們新增 -v
選項。
gzip -l main.py.gz
輸出:
method crc date time compressed uncompressed ratio uncompressed_name
defla 00000000 Sep 8 22:15 28 0 0.0% main.py
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn