Linux中國

zip 命令的解釋與示例

這篇文章是 Linux 命令學習系列的一部分。

zip 文件是一個包含一個或多個文件的壓縮檔案。它作為一種無損數據壓縮技術被廣泛使用。由於壓縮,它佔用的磁碟空間更少,在計算機網路上傳輸時需要的數據也更少。

這些壓縮文件可以在 Linux、Windows 和 macOS 中輕鬆提取。有各種支持壓縮 zip 文件的軟體,也提供提取它們的功能。

由於它很流行,幾乎所有的操作系統都內置了這個功能。

在本教程中,我們將談論幾種基於終端的方法來壓縮 Linux 中的文件。

Linux 中的 Zip 命令示例

語法

在 Linux 中,你需要使用的壓縮文件的程序名稱是 zip。下面是基本的語法:

zip [壓縮文件名] file1 file2 file3

以下是正式的語法:

zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]

理想情況下,zip 命令應該被安裝在所有主流的 Linux 發行版中。如果沒有,使用下面的命令來安裝它。

在 Debian、Ubuntu 和相關發行版上安裝

sudo apt install zip

在 Fedora、基於 RHEL 的系統上安裝

sudo dnf install zip

在 Arch Linux 上安裝

pacman -S zip

讓我們繼續看一些例子。

如何壓縮文件和文件夾

我的測試目錄中有以下三個文件。它們是 file1.txtfile2.txtfile3.txt。如果我想用 zip 壓縮三個文件,並創建一個 myfiles.zip 的壓縮包,用下面的命令就可以了。

zip myfiles.zip file1.txt file2.txt file3.mp3

輸出:

adding: file1.txt (stored 0%)
adding: file2.txt (stored 0%)
adding: file3.mp3 (deflated 13%)

Linux 中基本壓縮命令的輸出

這裡你應該記住幾個要點。

  • 當創建一個 zip 文件時,你應該有對當前目錄的修改許可權。
  • zip 文件格式不包含許可權,即讀(4)、寫(2),和執行(1)。所以,創建該文件的用戶成為該文件的所有者。
  • 如果你想使用帶有許可權的 zip,可以嘗試使用 tar 命令(將在後面的教程中解釋)。
  • 在上面的輸出中,zip 命令顯示了被添加到存檔中的文件名和壓縮方法。
  • 在目標文件名中指定 .zip 文件名的擴展名並不是必須的。如果你省略了 .zip,zip 會在最後加上 .zip。

當你操作成百上千的文件時,為了減少終端中的輸出,你可以使用 -q 參數來抑制 zip 命令中的輸出:

zip -q myfiles.zip file1.txt file2.txt file3.txt

遞歸壓縮子文件夾

zip 命令的 -r 選項使你能夠囊括所有子目錄。這個選項會遞歸地遍歷到一個目錄結構的最後一個子目錄,並將它們全部加入到壓縮文件中。

下面的命令創建了一個包含 my_folder 內所有內容和子目錄的壓縮文件:

zip -r myfolder.zip my_folder

你也可以使用通配符(*)在你的壓縮文件中包含特定類型的文件:

zip -0 my_movies.zip *.mp4

混合添加文件和目錄到壓縮文件

有了以上所有的選項,zip 命令允許你把文件和目錄一起作為參數指定。

zip -r myfiles.zip file1.txt file2.txt file3.txt my_folder1 my_folder2

壓縮演算法

zip 壓縮的默認輸出包含兩個不同的詞,即 deflatestore。zip 默認使用的壓縮方法是 deflate。如果它成功地壓縮了文件,那麼輸出顯示 deflate。而當它不能壓縮一個文件時,它只是將它們原封不動地存儲在 .zip 文件中。這些文件的輸出顯示為 store

目前有許多壓縮演算法。其中一種是 bzip2 壓縮法,在 Linux 中的 zip 命令支持它。你可以指定壓縮演算法作為一個命令選項來使用。使用選項 -Z,後面跟上演算法名稱,如下所示:

zip -r -Z bzip2 myfolder.zip my_folder

壓縮級別

zip 命令還允許你指定壓縮級別。壓縮級別是指你想讓 zip 優化多少來減少包的大小。它是一個從 0 到 9 的數值範圍。壓縮級別為 9 的值是最高的壓縮。默認值是 6。

記住,如果你用 zip 壓縮成千上萬個大小不一的文件,它可能會佔用較多的系統資源,並花費大量的時間。所以,如果你在程序中使用它,或者用 shell 腳本處理大量的文件,請遵循正確的編程標準。

zip -9 -r myfolder.zip my_folder

用密碼保護一個壓縮文件

你也可以用下面的 -e 選項對壓縮文件進行密碼保護:

zip -e -r myfolder.zip my_folder

運行該命令後,它將要求輸入密碼。

注意。盡量不要使用 zip 命令來對壓縮文件進行密碼保護。zip 的加密演算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保護你的文件,請使用 7-Zip 或其他高級工具。

分割較大的壓縮文件

許多應用程序、伺服器和文件共享可能包含固定大小的文件上傳限制。例如,你有一個 10GB 的文件,但服務只允許每個文件 1GB。使用 zip-s 選項,你可以將其壓縮並分割成幾塊進行上傳。

zip -s 1g -r myfolder.zip my_folder

總結

你學到了一些 zip 命令的基本知識。它對大多數本地情況很有用,在這些情況下,你需要通過即時壓縮來進行快速備份。然而,對於更高級的選項,你應該使用 7-Zip 或其他命令,我將在接下來的幾篇文章中分享。

同時,你可以在 zip 手冊 中了解更多。

via: https://www.debugpoint.com/zip-command-linux-examples/

作者:Arindam 選題:lkxed 譯者:Chao-zhi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國