使用Linux zip命令可以做很多事情
有許多不同的方法可以使用Linux命令行來壓縮文件。 本文包括一些實際示例, 說明如何使用zip命令壓縮和組織文件在您的文件系統中。
當您需要節省空間並將大文件從一個地方復製到另一個地方時,將使用壓縮文件。
如果您有10個文件大小均為100 MB,並且您需要將它們傳輸到ftp站點,則傳輸可能需要相當長的時間,具體取決於您的處理器速度。
如果您將全部10個文件壓縮到單個壓縮歸檔中 ,並且壓縮將文件大小減小到每個文件50MB,那麼您只需傳輸一半的數據。
如何創建文件夾中所有文件的存檔
想像一下你有一個包含下列MP3文件的歌曲文件夾:
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
如何自定義壓縮過程的進度報告
有多種方法可以自定義壓縮過程中出現的輸出。
可用的交換機如下所示:
- -db =顯示已壓縮了多少個字節以及剩下多少字節
- -dc =顯示壓縮文件的數量以及剩下多少文件
- -dd =為每10MB已壓縮的文件顯示點
- -ds =設置點出現的頻率
- -du =顯示每個文件的未壓縮大小
例如:
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
歸檔無效時從該命令輸出的內容可能如下所示:
- 壓縮警告:缺少結束簽名 - 可能不是一個zip文件
請記住,您可以嘗試使用-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