壓縮、解壓縮及歸檔工具
縮文件的基本原理是查找文件內的重復字節,并建立一個相同字節的"詞典"文件,并用一個代碼表示,比如在文件里有幾處有一個相同的詞"中華人民共和國"用一個代碼表示并寫入"詞典"文件,這樣就可以達到縮小文件的目的。 ———–百度百科
壓縮就是拿時間換空間。 ————————- 馬哥
命令行工具
compress/uncompress: .Z
gzip/gunzip: .gz
bzip2/bunzip2: .bz2
xz/unxz: .xz
zip/unzip
tar
cpio
compress/uncompress
語法: compress [-選項] [-b maxbits] [file …]
-d: 解壓縮,相當于uncompress
-c: 結果輸出至標準輸出,不刪除原文件
-v: 顯示詳情
uncompress 解壓縮
zcat file.Z >file
現在已經基本不用了
gzip / gunzip
語法: gzip [OPTION]… FILE …
-d: 解壓縮,相當于gunzip
-c: 將壓縮或解壓縮的結果輸出至標準輸出
– -#:1-9,指定壓縮比,值越大壓縮比越大,默認為6
zcat:不顯式解壓縮的前提下查看文本文件內容
實例:
壓縮: gzip textuser.test 直接壓縮文件,會自動生成與文件名相同的.gz文件 gzip -c messages >messages.gz 表示用-c輸出重定向到指定文件名中 解壓 gunzip textuser.test.gz 表示直接解壓文件 gzip -c -d messages.gz > messages 解壓并重定向 zcat messages.gz > messages 解壓
bzip2/bunzip2/bzcat
語法: bzip2 [選項]… FILE …
-k: keep, 保留原文件
-d:解壓縮
-#:1-9,壓縮比,默認為6
bzcat:不顯式解壓縮的前提下查看文本文件內容
xz/unxz/xzcat
語法: xz [選項]… FILE …
-k: keep, 保留原文件
-d:解壓縮
-#:1-9,壓縮比,默認為6
xzcat: 不顯式解壓縮的前提下查看文本文件內容
zip/unzip
打包壓縮
zip –r sysconfig sysconfig/
解包解壓縮
unzip sysconfig.zip
cat /var/log/messages | zip message -unzip -p message > message
注意:zip/unzip是可以壓縮整個目錄的 (要加 -r)不過解壓縮后不會保留文件原來的屬性信息!
tar
功能:打包文件,可以打包并且壓縮
語法:
創建歸檔 -c
展開歸檔 -x
不展開歸檔去查看歸檔中的文件列表 -t
打包與壓縮 tar [-j -z -J] [c v] [-f 新建的文件名] 要打包的文件或目錄
解壓縮 tar [-j -z -J] [x v] [-f 要解壓縮的文件名] [-C] 指明特定的解壓目錄
查看文件名 tar [-j -z -J] [t v] [-f 要解壓縮的文件名]
選項:
-c :新建打包文件,可搭配-v來查看打包過程
-t :查看打包文件的內容
-j :通過bzip2支持進行壓縮或者解壓 .bz2
-z :通過gzip支持進行壓縮或解壓 .gz
-J :通過xz支持進行壓縮或解壓 .xz
-v :查看過程
-Z或–compress或–uncompress:通過compress指令處理備份文件;
-f<備份文件>或–file=<備份文件>:指定壓縮后的文件名;
-C <目錄> :這個選項用在解壓縮,若要在特定目錄解壓縮,可以使用這個選項。
-N <日期格式> 或 –newer=<日期時間>:只將較指定日期更新的文件保存到備份文件里;
-p或–same-permissions:用原來的文件權限還原文件;
將文件全部打包成tar包:
tar -c -f /PATH/TO/SOMEFILE.tar FILE…
tar cf /PATH/TO/SOMEFILE.tar FILE…
僅打包,不壓縮!tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 壓縮
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 壓縮
查閱上述tar包內有哪些文件:
tar -ztvf log.tar.gz
將tar包解壓縮:
tar -zxvf /opt/soft/test/log.tar.gz 在預設的情況下,我們可以將壓縮檔在任何地方
只將tar內的部分文件解壓出來:
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
可以透過tar -ztvf來查閱 tar 包內的文件名稱,如果單只要一個文件,就可以透過這個方式來解壓部分文件!
文件備份下來,并且保存其權限:
tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log
在文件夾當中,比某個日期新的文件才備份:
tar -N "2012/11/13" -zcvf log17.tar.gz test
注意tar打包壓縮后文件不會保留原來的屬組屬主,-p也不行,誰解壓,解壓后的文件就屬于誰!
cpio
復制 從或到文件
功能:cpio命令是通過重定向的方式將文件進行打包備份,還原恢復的工具,它可以解壓以“.cpio”或者“.tar”結尾的文件。
用法:
cpio [選項] > 文件名或者設備名
cpio [選項] < 文件名或者設備名
選項
-o 將文件拷貝打包成文件或者將文件輸出到設備上
-i 解包,將打包文件解壓或將設備上的備份還原到系統
-t 預覽,查看文件內容或者輸出到設備上的文件內容
-v 顯示打包過程中的文件名稱。
-d 解包生成目錄,在cpio還原時,自動的建立目錄
-c 一種較新的存儲方式
示例
將etc目錄備份:
find ./etc -print |cpio -ov >etc.cpio
內容預覽
cpio –tv < etc.cpio
要解包文件
cpio –iv <etc.cpio
cpio –idv < etc.cpio
原創文章,作者:qzx,如若轉載,請注明出處:http://www.www58058.com/37278