一、壓縮
壓縮:根據一定算法將數據以更加節省空間的形式存放。下面來看一下Linux常見的壓縮工具:
1、gzip/gunzip
后綴名:.gz
常用選項:
-#:壓縮比:默認為6,范圍0-9。
-d:解壓縮,相當于gunzip。
-c:將壓縮后的結果輸出標準輸出。
gzip -c /path/to/somefile > /path/to/somefile.gz
-v:顯示進度。
zcat someifle.gz:不解壓查看gzip壓縮后的內容。
演示:
先復制一個文件到/tmp目錄下:
從上面的結果中可以明顯的看出壓縮前后的文件大小的區別,而且在壓縮完后源文件就不見了,如果我們想保留原文件可以進行以下操作:
上面的范例中首先使用-d選項進行了解壓縮,也可以使用gunzip命令來實現解壓縮;壓縮時修改了默認的壓縮比,并且保留了源文件。
如果想要讀取壓縮后的文件內容,我們可以先將其解壓后查看,當然也可以直接使用命令進行查看:
2、bzip2/bunzip2
后綴名: .bz2
常用選項:
-#:壓縮比:默認為6,范圍1-9。
-d:解壓縮,相當于bunzip2。
-k:保留原文件。
-c:將壓縮后的結果輸出標準輸出。
bzcat somefile.bz2:不解壓縮查看。
演示:
同樣,bzip2在壓縮后也把源文件搞沒了;
也可以使用與gzip相同的方法來保留源文件;
查看壓縮文件的內容:
3、xz/unxz
后綴名: .xz
常用選項:
-#:壓縮比默認為6, 范圍0-9。
-d:解壓縮,相當于unxz。
-k:保留原文件。
-c:將壓縮后的結果輸出標準輸出。
-v:顯示進度。
xzcat somefile.xz:不解壓縮查看。
演示:
xz命令與gzip、bzip2命令用法類似,就不做過多的演示了。
以上三種壓縮工具都可以雖然都是可以對文件進行壓縮,但它的壓縮性能是有區別的:
分別使用三種工具對同一文件進行同一級別的壓縮,結果顯示xz的壓縮比最高。
上面介紹的工具只能對單個文件進行壓縮,而對于目錄是不能操作的,如下圖所示:
如果想對目錄進行壓縮可以使用下面的這個命令。
4、zip/unzip
后綴名:.zip
命令格式:zip 文件名.zip 原文件
支持歸檔壓縮,可將多個文件壓縮至一個zip文件中;
支持對目錄進行歸檔,如zip tmp.zip /tmp/*。
針對于目錄的壓縮通常使用歸檔工具,所以zip就不過多的介紹了。
二、歸檔
歸檔就是實現將多個文件打包成單個文件。
使用tar命令來實現歸檔功能。
命令格式:tar [option] -f tarfile.tar src_file
option:
-c:創建歸檔。
-f FILE.tar:指定歸檔后的文件。
-v:顯示執行過程。
-x:展開歸檔。
-t:查看歸檔文件中的內容。
-z:使用gzip格式壓縮和解壓縮歸檔文件。
-j:使用bzip2格式壓縮和解壓縮歸檔文件。
-J:使用xz格式壓縮和解壓縮歸檔文件。
-C:指定歸檔的存放路徑。
-p:保留備份數據的原本權限與屬性。
-P:將文件以絕對路徑打包。
演示:
1、將/etc/目錄打包存放到/tmp目錄
在執行命令時出現兩個提示信息,從文件名和硬鏈接中移除了根目錄;其實tar命令打包時是按照相對路徑進行打包的,其用意在于將tar包展開時可以在任意目錄進行,如果打包時是按照絕對路徑的目錄存放,那么展開時就會直接按照絕對路徑進行恢復,以上圖為例,如果/etc目錄按照絕對路徑打包,那么展開時就會直接恢復到/etc目錄,會造成使用舊文件覆蓋新文件的問題。
如果想要以絕對路徑對文件打包,可以使用-P選項,下面來看一下這兩種方式的不同之處:
上面分別以相對路徑和絕對路徑的方式對/etc目錄進行了歸檔操作,下面我們來看一下兩個tar包中的內容:
2、對歸檔文件時行壓縮
3、展開歸檔文件
注意:展開歸檔文件時,如果歸檔文件是壓縮的,使用相對應的壓縮命令選項展開歸檔文件;以上圖為例,歸檔文件的壓縮格式為xz,在展開時可以使用對應的-J選項進行解壓展開,也可以直接使用-xf選項,tar命令自動檢測包類型并解壓。
原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/1991