linux中關於壓縮的命令

1.前言


最近在linux下安裝東西,發現好多安裝都需要通過使用壓縮指令來完成,所以覺得是時候來總結一下了。

在windows下,我們常見的壓縮格式有兩種,zip和rar。

在講述壓縮指令之前,我們先去看兩個概念,打包和壓縮。

這個很好理解,打包,就是把零散的東西包裝起來成一個總文件,壓縮呢,就是把一個大文件壓成小文件。

這兩個概念是必須要清楚的,對於linux來說,後續很多命令存在在這個概念的區別。

首先,我們需要對linux下壓縮文件的種類進行下總結,linux下的壓縮文件種類太多了,所以,對應的壓縮指令有很多。
接着對應指令我們來學習一下:

2.compress


compress已經是非常古老的壓縮程序了。現在已經很少看到這種壓縮格式的程序了。
一般我們進行操作,使用壓縮的時候,使用的是compress指令,使用解壓縮是使用uncompress指令。
compress
-r :遞歸子目錄壓縮
-v:顯示壓縮的過程
-c:將結果送到標註輸出。
-f :強制覆蓋掉目標文件
-d : 對文件執行解壓縮而非壓縮

這裏寫圖片描述
發現沒有,使用compress的時候是使用源文件直接壓縮,所以最終來說源文件保存成爲了壓縮文件。壓縮指令我們可以實現解壓縮,當然解壓縮指令也是可以的。

uncompress
-r :遞歸子目錄壓縮
-v:顯示壓縮的過程
-c:將結果送到標註輸出。
事實上uncompress是指向compress的符號連接,因此不論是壓縮或解壓縮,都可通過compress指令單獨完成。
這個時候你會發現解壓縮也是吧壓縮文件直接解出來,壓縮文件沒有了,如果你想要保留壓縮文件並且解壓出來怎麼辦呢,其實還是有辦法實現的,你可以使用-c,解壓縮到一個另外的文件流即可。
這裏寫圖片描述
事實上,compress已經很少有人使用了,因爲無法解壓.gz文件,所以接下來我們來講述下關於gzip指令

3.gzip


gzip指令使用的非常的廣泛。gzip和tar構成了linux中比較流行的壓縮文件格式。gzip文本文件的壓縮率大約在60%-70%。我們可以使用gzip解開compress,zip和gzip壓縮的文件。gzip生成的文件後綴是.gz
gzip
-c:寫到標準輸出
-d:解壓文件
-l:顯示文件內容
-r:遞歸壓縮文件
-t:測試,檢測文件是否完整。
-v:顯示一個壓縮文件的壓縮比和名字
-num:調整壓縮的速度。
對於gzip的使用和上面所講的compress是類似的。所以,我們使用。
這裏寫圖片描述
當我們想要保存壓縮文件解壓縮(或壓縮):使用-c選項。
這裏寫圖片描述
和compress一樣的,壓縮以後源文件也會不在的,然後就是取代的是壓縮文件,解壓縮時候壓縮文件也會被解壓出來的文件所替代。
當然,也提供了一個關於.gz格式的解壓命令,gunzip。這裏的gunzip是gzip的硬鏈接。
-a或–ascii:使用ASCII文字模式。
-c或–stdout或–to-stdout:把解壓後的文件輸出到標準輸出設備。
-f或-force:強行解開壓縮文件,不理會文件名稱或硬連接是否存在,以及該文件是否爲符號連接。
-l或–list:列出壓縮文件的相關信息。
-n或–no-name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其忽略不予處理。
-N或–name:解壓縮時,若壓縮文件內含有原來的文件名稱及時間戳記,則將其回存到解開的文件上。
-r或–recursive:遞歸處理,將指定目錄下的所有文件及子目錄一併處理。
-S或–suffix:更改壓縮字尾字符串。
-t或–test:測試壓縮文件是否正確無誤。
這裏寫圖片描述
zcat
對於zcat這個命令,用於不真正解壓縮的文件,就能顯示壓縮文件當中的內容的場合。
這裏寫圖片描述

我們可以看到直接顯示了壓縮文件當中的內容。

4.bzip2


這是一個壓縮命令,相比如gzip,它有更好的壓縮比,其他用法和gzip類似
選項
-c或——stdout:將壓縮與解壓縮的結果送到標準輸出;
-d或——decompress:執行解壓縮;
-k或——keep:bzip2在壓縮或解壓縮後,會刪除原始文件。若要保留原始文件,請使用此參數;
-f或-force:bzip2在壓縮或解壓縮時,若輸出文件與現有文件同名,預設不會覆蓋現有文件。若要覆蓋。請使用此參數;
-v或——verbose:壓縮或解壓縮文件時,顯示詳細的信息; -z或——compress:強制執行壓縮;
這裏寫圖片描述
在這裏比較不同點的是-k選項,通過-k選項我們終於可以實現保存原有文件了。
這裏寫圖片描述
當然,類似於上面所講的,這裏也有單獨的解壓縮命令bunzip2,這裏的bunzip2是bzip2的軟鏈接。
-f或–force:解壓縮時,若輸出的文件與現有文件同名時,預設不會覆蓋現有的文件;
-k或——keep:在解壓縮後,預設會刪除原來的壓縮文件。若要保留壓縮文件,請使用此參數;
-s或——small:降低程序執行時,內存的使用量;
-v或——verbose:解壓縮文件時,顯示詳細的信息;

有zcat也有bzcat,通過bzcat 類似於zcat,查看壓縮文件中的內容。
這裏寫圖片描述

5.tar


接下來的tar命令應該是linux當中很重要的指令。
它的意思是打包,打包,就像上面所說的,就是可以把多個文件或者文件夾,打包成一個文件。打包這種操作在linux下面使用非常廣泛,所以我們需要很熟悉。
比如我們經常會看到文件的格式是.tar.gz,它的操作就是先打包,然後進行gzip壓縮。
選項:
-A或–catenate:新增文件到以存在的備份文件;
-B:設置區塊大小;
-c或–create:建立新的備份文件;
-C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
-d:記錄文件的差別;
-x或–extract或–get:從備份文件中還原文件;
-t或–list:列出備份文件的內容;
-z或–gzip或–ungzip:通過gzip指令處理備份文件;
-Z或–compress或–uncompress:通過compress指令處理備份文件;
-f<備份文件>或–file=<備份文件>:指定備份文件;
-v或–verbose:顯示指令執行過程;
-r:添加文件到已經壓縮的文件;
-u:添加改變了和現有的文件到已經存在的壓縮文件;
-j:支持bzip2解壓文件;
-v:顯示操作過程;
-l:文件系統邊界設置;

這麼些選項,是不是覺得頭暈腦漲,其實我們只需要熟練掌握操作3個命令:
壓 縮:tar -jcvf filename.tar.bz2 要被壓縮的文件或目錄名稱
查 詢:tar -jtvf filename.tar.bz2
解壓縮:tar -jxvf filename.tar.bz2 -C 欲解壓縮的目錄

這裏的j對應的是bzip2方式壓縮,如果把j改爲z就是gzip的方式進行壓縮。

通過這三個命令,算最實用的操作。
這裏寫圖片描述
這裏寫圖片描述
壓縮目錄
這裏寫圖片描述
在這裏面需要關注幾個重要的幾個選項:
-p,用來保存檔案的權限和屬性。
這個選項很重要。尤其是當你想要保留文件屬性和權限的時候
–exclude=<範本樣式>:排除符合範本樣式的文件。

6.zip


zip這種壓縮式很熟悉的了,在linux下當然也會有這種壓縮,文件經過zip壓縮會帶有.zip的後綴。
選項:
-A:調整可執行的自動解壓縮文件;
-b<工作目錄>:指定暫時存放文件的目錄;
-c:替每個被壓縮的文件加上註釋;
-m:將文件壓縮並加入壓縮文件後,刪除原始文件,即把文件移到壓縮文件中;
-r:遞歸處理,將指定目錄下的所有文件和子目錄一併處理
-z:替壓縮文件加上註釋;
這裏寫圖片描述
當然,zip也有解壓縮命令
unzip
選項:
-c:將解壓縮的結果顯示到屏幕上,並對字符做適當的轉換;
-f:更新現有的文件;
-l:顯示壓縮文件內所包含的文件;
-v:執行時顯示詳細的信息
-n:解壓縮時不要覆蓋原有的文件;
-o:不必先詢問用戶,unzip執行後覆蓋原有的文件;
-P<密碼>:使用zip的密碼選項;
這裏寫圖片描述

7.總結


最近是在安裝一些linux下的軟件過程中經常使用壓縮命令,所以想來總結一下,畢竟這些事日常生活當中常用的東西,如果你想要進行深入的瞭解,那麼你更加需要多加練習。
在我看來,咱們通常使用最多的就是tar相關的操作了,所以,希望你熟練操作。大部分操作都是相通的,練習了一個,後續的操作大同小異。
2017年了,希望學到更多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章