如何在 Linux 中使用 gzip 命令

Suraj Joshi 2023年1月30日
  1. gzip 語法
  2. 使用 gzip 壓縮檔案
  3. 使用 gzip 解壓檔案
  4. 使用 gzip 命令列出壓縮檔案的詳細資訊
如何在 Linux 中使用 gzip 命令

gzip 是一個命令列實用程式,允許我們建立和提取 .gz 檔案。gzip 命令為每個檔案建立一個壓縮檔案。如果我們想把多個檔案或一個目錄壓縮成一個壓縮檔案,我們需要使用 tar 命令建立一個 .tar 檔案,然後使用 gzip 命令壓縮 .tar 檔案。使用 gzip 命令壓縮音訊檔案、影象檔案和其他二進位制檔案不是特別推薦,因為它們已經被壓縮了。

gzip 語法

gzip [OPTION]... [FILE]...

[FILE]... 代表要壓縮的檔案,[OPTION]... 代表自定義壓縮或解壓過程的選項。

使用 gzip 壓縮檔案

使用 gzip 壓縮檔案的命令是

gzip filename

這將使用 gzipfilename 壓縮成 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.pyfile.pyprocess.py 壓縮成各自的 .gz 檔案,分別為 main.py.gzfile.py.gzprocess.py.gz

使用 gzip 壓縮一個目錄內的所有檔案

要使用 gzip 壓縮一個目錄內的所有檔案,我們使用 gzip 命令的 -r 選項。

gzip -r test_dir

它將 test_dir 內的每一個單獨的檔案壓縮成各自的壓縮檔案,以 .gz 結尾。

使用 gzip 解壓檔案

要使用 gzip 解壓 .gz 檔案,我們使用 gzip 命令的 -d 選項。

gzip -d filename.gz

它使用 gzipfilename.gz 解壓成 filename 並刪除壓縮後的檔案。

我們也可以用 gunzip 命令解壓 .gz 檔案。

gunzip main.py.gz

它用 gzipmain.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.gzfile.py.gzprocess.py.gz 檔案解壓成 main.pyfile.pyprocess.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
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn