1. 程式人生 > >Linux —— 壓縮文件

Linux —— 壓縮文件

工具 網絡 需要 打包成 字符串 -a 壓縮命令 cpio 文件名

Linux——壓縮文件

為什麽需要壓縮文件?
文件在傳輸過程中,可能由於文件過大,傳輸所需時間過多。減少文件大小有兩個明顯的好處,一是可以減
少存儲空間,二是通過網絡傳輸文件時,可以減少傳輸的時間。對於某些不常用文件,減少它對硬盤空間的
浪費,我們往往會將其壓縮,在需要時再解壓縮。


Linux中有哪些文件壓縮命令?
在Linux中,提供了許多文件壓縮命令,針對所需要壓縮的文件不同,我們可以選用不同的壓縮方式。
壓縮格式:gz bz2 xz zip z
根據不同的壓縮算法,壓縮比也不同。

壓縮命令詳解:

gzip: FILE.gz
gzip不僅可以用來壓縮大的、較少使用的文件以節省磁盤空間,還可以和tar命令一起構成Linux操作系統中
比較流行的壓縮文件格式。據統計,gzip命令對文本文件有60%~70%的壓縮率。

語法格式:gzip 選項 參數

常用選項:
-a或——ascii:使用ASCII文字模式;
-d或--decompress或----uncompress:解開壓縮文件;
-f或——force:強行壓縮文件。不理會文件名稱或硬連接是否存在以及該文件是否為符號連接;
-l或——list:列出壓縮文件的相關信息;
-n或--no-name:壓縮文件時,不保存原來的文件名稱及時間戳記;
-N或——name:壓縮文件時,保存原來的文件名稱及時間戳記;
-q或——quiet:不顯示警告信息;
-r或——recursive:遞歸處理,將指定目錄下的所有文件及子目錄一並處理;
-S或<壓縮字尾字符串>或----suffix<壓縮字尾字符串>:更改壓縮字尾字符串;
-t或——test:測試壓縮文件是否正確無誤;
-#<壓縮比>:壓縮比是一個介於1~9的數值,默認值為 6 ,指定的數值越大,壓縮效率就會愈高;
--best:此參數的效果和指定“-9”參數相同;
--fast:此參數的效果和指定“-1”參數相同。

[[email protected]

/* */ scourse]$ ls
passwd
[[email protected] scourse]$ gzip *
[[email protected] scourse]$ ls
passwd.gz
[[email protected] scourse]$ gzip -d *
[[email protected] scourse]$ ls
passwd

默認情況下,源文件在被壓縮完後會被刪除

zcat: 在不解壓的情況下,查看被gzip壓縮的文本文件的內容。


bzip2: FILE.bz2
bzip2比gzip有更大的壓縮比,使用格式近似。
語法格式:bzip2 選項 參數
常用選項:
-c或——stdout:將壓縮與解壓縮的結果送到標準輸出;
-d或——decompress:執行解壓縮;
-f或-force:bzip2在壓縮或解壓縮時,若輸出文件與現有文件同名,預設不會覆蓋現有文件。若要覆蓋。請使用此參數;
-k或——keep:bzip2在壓縮或解壓縮後,會刪除原始文件。若要保留原始文件,請使用此參數;
-s或——small:降低程序執行時內存的使用量;
-v或——verbose:壓縮或解壓縮文件時,顯示詳細的信息;
-z或——compress:強制執行壓縮;
-#<壓縮比>:壓縮比是一個介於1~9的數值,默認值為 6 ,指定的數值越大,壓縮效率就會愈高;

bunzip2 文件: 解壓縮 .bz2 文件

bzcat:在不解壓的情況下,查看被bzip2文本文件的內容。


xz:FILE.xz
壓縮比更大
語法格式:xz 選項 參數
常用選項:
-d:解壓縮
-#<壓縮比>:壓縮比是一個介於1~9的數值,默認值為 6 ,指定的數值越大,壓縮效率就會愈高;
-k:壓縮時保留源文件,也可以使用輸出重定向保留源文件

unxz:解壓縮

xzcat:在不解壓的情況下,查看被xz文本文件的內容,同xzdec


zip:可以用來解壓縮文件,或者對文件進行打包操作。zip是個使用廣泛的壓縮程序,文件經它壓縮後會另外
產生具有“.zip”擴展名的壓縮文件。

語法格式:zip 壓縮後的文件名 要壓縮的文件

常用選項:
-A:調整可執行的自動解壓縮文件;
-b<工作目錄>:指定暫時存放文件的目錄;
-c:替每個被壓縮的文件加上註釋;
-d:從壓縮文件內刪除指定的文件;
-D:壓縮文件內不建立目錄名稱;
-f:此參數的效果和指定“-u”參數類似,但不僅更新既有文件,如果某些文件原本不存在於壓縮
文件內,使用本參數會一並將其加入壓縮文件中;
-F:嘗試修復已損壞的壓縮文件;
-g:將文件壓縮後附加在已有的壓縮文件之後,而非另行建立新的壓縮文件;
-i<範本樣式>:只壓縮符合條件的文件;
-j:只保存文件名稱及其內容,而不存放任何目錄名稱;
-J:刪除壓縮文件前面不必要的數據;
-k:使用MS-DOS兼容格式的文件名稱;
-l:壓縮文件時,把LF字符置換成LF+CR字符;
-ll:壓縮文件時,把LF+cp字符置換成LF字符;
-m:將文件壓縮並加入壓縮文件後,刪除原始文件,即把文件移到壓縮文件中;
-n<字尾字符串>:不壓縮具有特定字尾字符串的文件;
-o:以壓縮文件內擁有最新更改時間的文件為準,將壓縮文件的更改時間設成和該文件相同;
-q:不顯示指令執行過程;
-r:遞歸處理,將指定目錄下的所有文件和子目錄一並處理;
-S:包含系統和隱藏文件;
-t<日期時間>:把壓縮文件的日期設成指定的日期;
-T:檢查備份文件內的每個文件是否正確無誤;
-u:更換較新的文件到壓縮文件內;
-v:顯示指令執行過程或顯示版本信息;
-V:保存VMS操作系統的文件屬性;
-w:在文件名稱裏假如版本編號,本參數僅在VMS操作系統下有效;
-x<範本樣式>:壓縮時排除符合條件的文件;
-X:不保存額外的文件屬性;
-y:直接保存符號連接,而非該鏈接所指向的文件,本參數僅在UNIX之類的系統下有效;
-z:替壓縮文件加上註釋;
-$:保存第一個被壓縮文件所在磁盤的卷冊名稱;
-<壓縮比>:壓縮比是一個介於1~9的數值。

unzip:解壓縮


打包和壓縮的區別?
打包是指將一大堆文件或目錄變成一個總的文件;壓縮則是將一個大的文件通過一些壓縮算法變成一個小文件。


為什麽要區分這兩個概念呢?
這源於Linux中很多壓縮程序只能針對一個文件進行壓縮,這樣當你想要壓縮一大堆文件時,你得先將這一大堆
文件先打成一個包(tar命令),然後再用壓縮程序進行壓縮(gzip、bzip2命令)。


歸檔工具:
tar:默認不儲存擴展屬性
利用tar,可以為某一特定文件創建檔案(備份文件),也可以在檔案中改變文件,或者向檔案中加入新的
文件。利用tar命令,可以把一大堆的文件和目錄全部打包成一個文件,這對於備份文件或將幾個文件組合
成為一個文件以便於網絡傳輸是非常有用的。

語法格式:tar 選項 參數

常用選項:
-c: 創建歸檔文件
-x:展開歸檔文件
-f:操作歸檔文件
--xattrs: 歸檔時,保留文件擴展屬性信息
-t:不展開歸檔,只查看歸檔了哪些文件
-zcf:歸檔並調用gzip壓縮
-zxf:調用gzip壓縮再歸檔
-jcf:歸檔並調用bzip2壓縮
-jxf:調用bzip2壓縮再歸檔
-Jcf:歸檔並調用xz壓縮
-Jxf:調用xz壓縮再歸檔

cpio: 歸檔工具

Linux —— 壓縮文件