1. 程式人生 > >Linux學習筆記(十九)文件壓縮

Linux學習筆記(十九)文件壓縮

文件壓縮

一、常見的壓縮文件

Windows .rar .zip .7z

Linux .zip,.gz,.bz2,.xz,.tar.gz,.tar.bz2,.tar.xz
文件壓縮可以節省內存,也可以節省傳輸速度

二、gzip

首先創建了一個文件夾 /tmp/d6z/
找了些比較大的文件寫入1.txt
例如
find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \ ;
多執行幾次
技術分享圖片

gzip 1.txt

就可以將文件1.txt壓縮並且刪除源文件
可以看到之前1.txt大小為8.5m
壓縮後1.9m
技術分享圖片

gzip -d 1.txt.gz

解壓文件,這時候發現1.txt比原來小了,這是因為壓縮後會刪除一些沒必要的空間,

wc -l 1.txt  

可以查看文件行數,壓縮解壓縮前後可以查看文件是否變化
gzip -1 1.txt
這裏的-1是壓縮級別,共九個級別,默認為6,數字越小,壓縮率越低,壓縮後文件越大,資源耗費越小,反之亦然,一般壓縮時壓縮級別保持默認即可
gunzip 1.txt.gz
也可以用來解壓縮文件
技術分享圖片

file 1.txt.gz 

查看壓縮文件的信息

zcat 1.txt.gz

可以查看壓縮包中文件的內容
技術分享圖片

gzip -c 1.txt > /root/1.txt.gz

將文件壓縮到指定路徑並指定文件名而且不刪除源文件

gunzip -c /root/1.txt.gz > /tmp/1.txt.new

將壓縮文件解壓到指定文件夾並指定文件名,不刪除原壓縮文件

註意:gzip不可以壓縮目錄
參數選項

-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解開壓縮文件;
-f或——force:強行壓縮文件。不理會文件名稱或硬連接是否存在以及該文件是否為符號連接;
-h或——help:在線幫助;
-l或——list:列出壓縮文件的相關信息;
-L或——license:顯示版本與版權信息;
-n或--no-name:壓縮文件時,不保存原來的文件名稱及時間戳記;
-N或——name:壓縮文件時,保存原來的文件名稱及時間戳記;
-q或——quiet:不顯示警告信息;
-r或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理;

-S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串;
-t或——test:測試壓縮文件是否正確無誤;
-v或——verbose:顯示指令執行過程;
-V或——version:顯示版本信息;
-<壓縮效率>:壓縮效率是一個介於1~9的數值,預設值為“6”,指定愈大的數值,壓縮效率就會愈高;
--best:此參數的效果和指定“-9”參數相同;
--fast:此參數的效果和指定“-1”參數相同。
三、bzip2

如果沒有安裝就先安裝bzip2
yum install -y bzip2

bzip2 1.txt
技術分享圖片

bzip2 1.txt  / bzip2 -z 1.txt
 bzip2 -d 1.txt.bz2 / bunzip2 1.txt.bz2
 bzip -# 1.txt  //#範圍1-9,默認9
 不能壓縮目錄
 bzcat 1.txt.bz2
 bzip2 -c 1.txt > /root/1.txt.bz2
 bzip2 -c -d /root/1.txt.bz2 > /tmp/1.txt.new2

bzip2用法基本與gzip相同

bzcat 1.txt.bz2
查看壓縮文件的文件內容
參數選項

-c或——stdout:將壓縮與解壓縮的結果送到標準輸出;
-d或——decompress:執行解壓縮;
-f或-force:bzip2在壓縮或解壓縮時,若輸出文件與現有文件同名,預設不會覆蓋現有文件。若要覆蓋。請使用此參數;
-h或——help:在線幫助;
-k或——keep:bzip2在壓縮或解壓縮後,會刪除原始文件。若要保留原始文件,請使用此參數;
-s或——small:降低程序執行時內存的使用量;
-t或——test:測試.bz2壓縮文件的完整性;
-v或——verbose:壓縮或解壓縮文件時,顯示詳細的信息;
-z或——compress:強制執行壓縮;
-V或——version:顯示版本信息;
--repetitive-best:若文件中有重復出現的資料時,可利用此參數提高壓縮效果;
--repetitive-fast:若文件中有重復出現的資料時,可利用此參數加快執行效果。
四、xz

xz壓縮的用法也基本與gzip、bzip2類似

xz 1.txt  / xz -z 1.txt           
 xz -d 1.txt.xz / unxz 1.txt.xz
 xz -# 1.txt  //#範圍1-9,默認9
 不能壓縮目錄
 xzcat 1.txt.xz
 xz -c 1.txt > /root/1.txt.xz
 xz -d -c /root/1.txt.xz > 1.txt.new3

壓縮後文件大小方面
gzip>bzip2>xz
也就是xz最耗費資源,壓縮後文件最小

Linux學習筆記(十九)文件壓縮