Zip命令的實際例子

使用Linux zip命令可以做很多事情

有許多不同的方法可以使用Linux命令行來壓縮文件。 本文包括一些實際示例, 說明如何使用zip命令壓縮和組織文件在您的文件系統中。

當您需要節省空間並將大文件從一個地方復製到另一個地方時,將使用壓縮文件。

如果您有10個文件大小均為100 MB,並且您需要將它們傳輸到ftp站點,則傳輸可能需要相當長的時間,具體取決於您的處理器速度。

如果您將全部10個文件壓縮到單個壓縮歸檔中 ,並且壓縮將文件大小減小到每個文件50MB,那麼您只需傳輸一半的數據。

如何創建文件夾中所有文件的存檔

想像一下你有一個包含下列MP3文件的歌曲文件夾:

AC / DC公路到地獄
Night Prowler.mp3
愛飢餓的男人.mp3
Get It Hot.mp3
走遍你.mp3
高速公路去hell.mp3
如果你想要血,你得到它.mp3
在flames.mp3中顯示
觸摸太多.mp3
毆打bush.mp3
女孩得到了Rhythm.mp3

這個簡單的Linux命令演示瞭如何創建名為ACDC_Highway_to_Hell.zip的當前文件夾中所有文件的存檔:

郵編ACDC_Highway_to_Hell *

文本向上滾動顯示正在添加的文件的屏幕。

如何在檔案中包含隱藏的文件

上述命令適用於歸檔文件夾中的所有文件,但它只包含未隱藏的文件。

這並不總是這麼簡單。 想像一下,你想壓縮你的主文件夾,以便你可以備份到USB驅動器外部硬盤驅動器 。 您的主文件夾包含隱藏的文件。

要壓縮包含文件夾中隱藏文件的所有文件,請運行以下命令:

拉鍊家*。*

這將創建一個名為home.zip的文件,其中包含主文件夾中的所有文件。

(您必須位於主文件夾才能正常工作)。 這個命令的問題在於它只包含主文件夾中的文件而不包含文件夾,這將使我們看到下一個示例。

如何在Zip文件中存檔所有文件和子文件夾

要將所有文件和子文件夾包含在檔案中,請運行以下命令:

zip -r首頁。

如何將新文件添加到現有的壓縮檔案

如果要將新文件添加到現有存檔或更新存檔中的文件,請在運行zip命令時使用相同的存檔文件名稱。

例如,假設您有一個包含四個相冊的音樂文件夾,並且您創建了一個名為music.zip的存檔以作為備份。 現在想像一個星期後你下載兩張新專輯 。 要將新相冊添加到zip文件,只需運行與前一周相同的zip命令即可。

要創建原始音樂檔案,請運行以下代碼:

zip -r音樂/家庭/你的名字/音樂/

要將新文件添加到存檔,請再次運行相同的命令。

如果zip文件中包含文件列表,並且磁盤上的某個文件已更改,則修改後的文件將在zip文件中更新。

如何更新壓縮檔案中的現有文件

如果您有一個每次都包含相同文件名的zip文件,並且您希望通過對這些文件所做的任何更改來更新該文件,那麼-f開關可幫助您執行此操作。

例如,假設你有一個帶有以下文件的壓縮文件:

/家庭/提供yourname /文件/文件1
/家庭/提供yourname /文件/文件2
/家庭/提供yourname /文件/文件3
/家庭/提供yourname /文件/文件4
/家庭/提供yourname /文件/ file5
/家庭/提供yourname /文件/ file6

現在想像一下,在這一周中,您添加了兩個新文件並修改了兩個文件,以便文件夾/ home / yourname / documents現在看起來像這樣:

/家庭/提供yourname /文件/文件1
/家庭/提供yourname /文件/文件2
/家庭/提供yourname /文件/文件3
/ home / yourname / documents / file4(已更新)
/ home / yourname / documents / file5(已更新)
/家庭/提供yourname /文件/ file6
/家庭/提供yourname /文件/ file7
/家庭/提供yourname /文件/ file8

當您運行以下命令時,zip文件將包含更新的文件(file4和file5),但不會添加file7和file8。

zip zipfilename -f -r / home / yourname / documents

如何從壓縮檔案中刪除文件

因此,您創建了一個包含數百個文件的大型zip文件,現在意識到zip文件中有四個或五個文件,您不需要這些文件。 無需再次壓縮所有這些文件,只需使用-d開關運行zip命令,如下所示:

zip zipfilename -d [檔案文件的名稱]

例如,如果檔案中的文件名為home / documents / test.txt,則可以使用以下命令將其刪除:

zip zipfilename -d home / documents / test.txt

如何將文件從一個Zip文件複製到另一個文件

如果您有一個zip文件中的文件,並且您希望將它們複製到另一個zip文件,而不先提取它們並重新對它們進行重新分類,請使用-u開關。

假設您有一個名為“variousmusic.zip”的壓縮文件,其中包含來自不同藝術家的音樂,其中之一是AC / DC。 您可以使用以下命令將AC / DC歌曲從各種music.zip文件複製到ACDC.zip文件中:

zip variousmusic.zip -U --out ACDC.zip“Back_In_Black.mp3”

上述命令將各種音樂.zip文件“Back in black”複製到ACDC.zip。 如果您正在復制的zip文件不存在,則會創建該文件。

如何使用模式匹配和管道創建檔案

下一個開關非常有用,因為它可以讓您使用其他命令的輸出將文件插入到您的zip文件中。 假設你想創建一個名為lovesongs.zip的文件,其中包含標題中包含愛字的每首歌曲。

要在標題中找到愛的文件,您可以使用以下命令:

find / home / yourname / Music -name * love *

上面的命令不是100%完美的,因為它也會提取“三葉草”這樣的詞,但是你明白了。 要將上述命令的所有返回結果添加到名為lovesongs.zip的zip文件,請運行以下命令:

find / home / yourname / Music -name * love * | 郵編lovesongs.zip - @

如何創建拆分檔案

如果您正在備份計算機,但唯一可用於備份的介質是一組空白DVD ,則可以選擇。 您可以繼續壓縮文件,直到壓縮文件為4.8千兆字節並刻錄DVD ,或者您可以創建一個稱為拆分壓縮文件的內容,該文件在達到您指定的限制後不斷創建新的壓縮文件。

例如:

zip mymusic.zip -r / home / myfolder / Music -s 670m

如何自定義壓縮過程的進度報告

有多種方法可以自定義壓縮過程中出現的輸出。

可用的交換機如下所示:

例如:

zip myzipfilename.zip -dc -r / home / music

如何修復一個Zip文件

如果你有一個破解的zip壓縮文件,你可以嘗試使用-F命令修復它,如果失敗了,可以使用FF命令。

如果您使用-s開關創建了拆分歸檔文件,並且丟失了其中一個歸檔文件,這很有用。

例如,首先嘗試一下:

zip -F myfilename.zip --out myfixedfilename.zip

接著

zip -FF myfilename.zip --out myfixedfilename.zip

如何加密檔案

如果您想要將敏感信息存儲在zip文件中,請使用-e命令對其進行加密 。 系統會要求您輸入密碼並重複輸入密碼。

例如:

zip myfilename.zip -r / home / wikileaks -e

如何顯示將被壓縮的內容

如果您知道您將要創建一個大型壓縮文件,請確保將正確的文件添加到壓縮文件中。 您可以通過指定- sf開關來查看zip命令的預期結果。

例如:

zip myfilename.zip -r / home / music / -sf

如何測試檔案

將文件備份到一個zip文件後,通過刪除原始文件來節省磁盤空間是很誘人的。 在你這樣做之前,測試一下zip文件是否正常工作是個好主意。

您可以使用-T開關來測試該zip文件是否有效。

例如:

zip myfilename.zip -T

歸檔無效時從該命令輸出的內容可能如下所示:

請記住,您可以嘗試使用-F命令修復損壞的zip文件。

值得注意的是,-T可能會產生誤報,因為它說一個zip文件已損壞,即使打開它時也可以提取所有文件。

如何排除文件

有時候你想從zip文件中排除某些文件。 例如,如果您從手機或數碼相機複製文件,則會混合使用視頻和圖像。 您可能希望將照片壓縮到photos.zip和視頻到videos.zip。

這是創建photos.zip時排除視頻的一種方法

zip photos.zip -r / home / photos / -x * .mp4

如何指定壓縮級別

當您將文件壓縮成zip文件時,系統會決定是壓縮文件還是存儲文件。 例如, Mp3文件已經被壓縮了,所以沒有必要進一步壓縮它們; 它們通常保存在一個zip文件中。

但是,您可以指定介於0和9之間的壓縮級別來進一步壓縮文件。 這需要更長的時間,但它可以節省大量的空間。

zip myfiles.zip -r / home -5