zip 命令的解釋與示例

這篇文章是 ??Linux 命令??學(xué)習(xí)系列的一部分。
zip 文件是一個(gè)包含一個(gè)或多個(gè)文件的壓縮檔案。它作為一種無損數(shù)據(jù)壓縮技術(shù)被廣泛使用。由于壓縮,它占用的磁盤空間更少,在計(jì)算機(jī)網(wǎng)絡(luò)上傳輸時(shí)需要的數(shù)據(jù)也更少。
這些壓縮文件可以在 Linux、Windows 和 macOS 中輕松提取。有各種支持壓縮 zip 文件的軟件,也提供提取它們的功能。
由于它很流行,幾乎所有的操作系統(tǒng)都內(nèi)置了這個(gè)功能。
在本教程中,我們將談?wù)搸追N基于終端的方法來壓縮 Linux 中的文件。
Linux 中的 Zip 命令示例
語法
在 Linux 中,你需要使用的壓縮文件的程序名稱是 ??zip??。下面是基本的語法:
以下是正式的語法:
理想情況下,??zip?? 命令應(yīng)該被安裝在所有主流的 Linux 發(fā)行版中。如果沒有,使用下面的命令來安裝它。
在 Debian、Ubuntu 和相關(guān)發(fā)行版上安裝
在 Fedora、基于 RHEL 的系統(tǒng)上安裝
在 Arch Linux 上安裝
讓我們繼續(xù)看一些例子。
如何壓縮文件和文件夾
我的測試目錄中有以下三個(gè)文件。它們是 ??file1.txt??、??file2.txt?? 和 ??file3.txt??。如果我想用 zip 壓縮三個(gè)文件,并創(chuàng)建一個(gè) ??myfiles.zip?? 的壓縮包,用下面的命令就可以了。
輸出:

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


























