zip 命令的解釋與示例
這篇文章是 ??Linux 命令??學習系列的一部分。
zip 文件是一個包含一個或多個文件的壓縮檔案。它作為一種無損數(shù)據(jù)壓縮技術(shù)被廣泛使用。由于壓縮,它占用的磁盤空間更少,在計算機網(wǎng)絡(luò)上傳輸時需要的數(shù)據(jù)也更少。
這些壓縮文件可以在 Linux、Windows 和 macOS 中輕松提取。有各種支持壓縮 zip 文件的軟件,也提供提取它們的功能。
由于它很流行,幾乎所有的操作系統(tǒng)都內(nèi)置了這個功能。
在本教程中,我們將談論幾種基于終端的方法來壓縮 Linux 中的文件。
Linux 中的 Zip 命令示例
語法
在 Linux 中,你需要使用的壓縮文件的程序名稱是 ??zip?
?。下面是基本的語法:
以下是正式的語法:
理想情況下,??zip?
? 命令應該被安裝在所有主流的 Linux 發(fā)行版中。如果沒有,使用下面的命令來安裝它。
在 Debian、Ubuntu 和相關(guān)發(fā)行版上安裝
在 Fedora、基于 RHEL 的系統(tǒng)上安裝
在 Arch Linux 上安裝
讓我們繼續(xù)看一些例子。
如何壓縮文件和文件夾
我的測試目錄中有以下三個文件。它們是 ??file1.txt?
?、??file2.txt?
? 和 ??file3.txt?
?。如果我想用 zip 壓縮三個文件,并創(chuàng)建一個 ??myfiles.zip?
? 的壓縮包,用下面的命令就可以了。
輸出:
Linux 中基本壓縮命令的輸出
這里你應該記住幾個要點。
- 當創(chuàng)建一個 zip 文件時,你應該有對當前目錄的修改權(quán)限。
- zip 文件格式不包含權(quán)限,即讀(4)、寫(2),和執(zhí)行(1)。所以,創(chuàng)建該文件的用戶成為該文件的所有者。
- 如果你想使用帶有權(quán)限的 zip,可以嘗試使用 ?
?tar?
? 命令(將在后面的教程中解釋)。 - 在上面的輸出中,?
?zip?
? 命令顯示了被添加到存檔中的文件名和壓縮方法。 - 在目標文件名中指定 .zip 文件名的擴展名并不是必須的。如果你省略了 .zip,?
?zip?
? 會在最后加上 .zip。
當你操作成百上千的文件時,為了減少終端中的輸出,你可以使用 ??-q?
? 參數(shù)來抑制 ??zip?
? 命令中的輸出:
遞歸壓縮子文件夾
??zip?
? 命令的 ??-r?
? 選項使你能夠囊括所有子目錄。這個選項會遞歸地遍歷到一個目錄結(jié)構(gòu)的最后一個子目錄,并將它們?nèi)考尤氲綁嚎s文件中。
下面的命令創(chuàng)建了一個包含 ??my_folder?
? 內(nèi)所有內(nèi)容和子目錄的壓縮文件:
你也可以使用通配符(??*?
?)在你的壓縮文件中包含特定類型的文件:
混合添加文件和目錄到壓縮文件
有了以上所有的選項,??zip?
? 命令允許你把文件和目錄一起作為參數(shù)指定。
壓縮算法
zip 壓縮的默認輸出包含兩個不同的詞,即 ??deflate?
? 和 ??store?
?。zip 默認使用的壓縮方法是 ??deflate?
?。如果它成功地壓縮了文件,那么輸出顯示 ??deflate?
?。而當它不能壓縮一個文件時,它只是將它們原封不動地存儲在 .zip 文件中。這些文件的輸出顯示為 ??store?
?。
目前有許多壓縮算法。其中一種是 bzip2 壓縮法,在 Linux 中的 ??zip?
? 命令支持它。你可以指定壓縮算法作為一個命令選項來使用。使用選項 ??-Z?
?,后面跟上算法名稱,如下所示:
壓縮級別
??zip?
? 命令還允許你指定壓縮級別。壓縮級別是指你想讓 zip 優(yōu)化多少來減少包的大小。它是一個從 0 到 9 的數(shù)值范圍。壓縮級別為 9 的值是最高的壓縮。默認值是 6。
記住,如果你用 zip 壓縮成千上萬個大小不一的文件,它可能會占用較多的系統(tǒng)資源,并花費大量的時間。所以,如果你在程序中使用它,或者用 shell 腳本處理大量的文件,請遵循正確的編程標準。
用密碼保護一個壓縮文件
你也可以用下面的 ??-e?
? 選項對壓縮文件進行密碼保護:
運行該命令后,它將要求輸入密碼。
注意。盡量不要使用 zip 命令來對壓縮文件進行密碼保護。zip 的加密算法是使用流式加密的 PKZIP。而它很容易被破解。如果你想保護你的文件,請使用 7-Zip 或其他高級工具。
分割較大的壓縮文件
許多應用程序、服務器和文件共享可能包含固定大小的文件上傳限制。例如,你有一個 10GB 的文件,但服務只允許每個文件 1GB。使用 ??zip?
? 的 ??-s?
? 選項,你可以將其壓縮并分割成幾塊進行上傳。
總結(jié)
你學到了一些 ??zip?
? 命令的基本知識。它對大多數(shù)本地情況很有用,在這些情況下,你需要通過即時壓縮來進行快速備份。然而,對于更高級的選項,你應該使用 7-Zip 或其他命令,我將在接下來的幾篇文章中分享。
同時,你可以在 ??zip 手冊?? 中了解更多。