詳談Linux打包與壓縮及tar命令
打包和壓縮
在linux中,打包和壓縮可以說(shuō)是兩個(gè)不同的概念,弄清這兩個(gè)概念對(duì)于我們理解復(fù)雜的文件后綴有非常大的幫助
打包
將若干個(gè)文件和目錄打包在一起變成一個(gè)大的文件,這時(shí)只是簡(jiǎn)單的打包,所以一般打包后的文件大小比被打包的文件總和還大
壓縮
將一個(gè)文件根據(jù)一定的算法變成一個(gè)小文件,壓縮比用來(lái)衡量壓縮前與壓縮后的文件大小比值
壓縮
在linux中主要有三個(gè)壓縮命令gzip、bzip2、xz,它們各自采用不同的壓縮算法,說(shuō)明及常用參數(shù)如下:
壓縮命令 | gzip | bzip2 | xz |
文件名后續(xù) | .gz | .bz2 | .xz |
參數(shù)-d | 解壓縮 | 解壓縮 | 解壓縮 |
參數(shù)-k | -- | 壓縮時(shí)保留原文件 | 壓縮時(shí)保留原文件 |
相應(yīng)的解壓命令 | gunzip | bunzip2 | unxz |
相應(yīng)的不解壓查看文件內(nèi)容命令 | zcat | bzcat | xcat |
注意:這三個(gè)命令只能對(duì)單個(gè)文件進(jìn)行壓縮,并且默認(rèn)情況下如果不指定參數(shù),都會(huì)把原文件刪除
打包
打包命令最常用的當(dāng)屬tar命令,而且它還可以調(diào)用上面提到的三個(gè)壓縮命令,故用的頻率非常之高,我們來(lái)看下tar的一些常用參數(shù)
常用參數(shù)
-f: 要操作的歸檔文件,如-f file.tar
-c:創(chuàng)建歸檔文件
-r:增加文件到歸檔文件中
-u:更新歸檔中的文件
-x:展開(kāi)歸檔
-t:不解壓,直接查看歸檔了哪些文件
打包示例
將所有.png的文件打包成一個(gè)名為allpic.tar
tar -cf allpic.tar *.png
將所有.jpg結(jié)尾的文件追加到文件allpic.tar中
tar -rf allpic.tar *.jpg
更新allpic.tar中的front.jpg文件
tar -uf allpic.tar front.jpg
列出allpic.tar包中的所有文件(并沒(méi)有解壓)
tar -tf allpic.tar
解壓出allpic.tar中的所有文件
tar -xf allpic.tar
壓縮示例
tar有選項(xiàng)就是它可以在打包后再調(diào)用上面提到的三種壓縮方式對(duì)打包后的文件進(jìn)行壓縮,
gzip對(duì)應(yīng)參數(shù)-z 或--gzip
bzip2對(duì)應(yīng)參數(shù)-j 或--bzip2
xz對(duì)應(yīng)參數(shù)-J 或--xz
所以我們只需要在上面的參數(shù)-c(創(chuàng)建打包)或-x(解壓文件)命令中加入對(duì)應(yīng)的參數(shù),并且文件后綴改一下就可以實(shí)現(xiàn)打包并壓縮和解壓的功能了,改成不同的后綴只是方便我們?nèi)搜圩R(shí)別,不改也沒(méi)有關(guān)系,要查看文件是什么壓縮類(lèi)型的只要用file命令就可以。
調(diào)用gzip壓縮和解壓縮
將所有.png的文件打包并壓縮成一個(gè)名為allpic.tar.gz文件
tar -czf allpic.tar.gz *.png
列出allpic.tar.gz中的所有文件
tar -tzf allpic.tar.gz
將allpic.tar.gz文件解壓到當(dāng)前目錄
tar -xzf allpic.tar.gz
調(diào)用bzip2壓縮和解壓縮
將所有.png的文件打包并壓縮成一個(gè)名為allpic.tar.gz文件
tar -cjf allpic.tar.bz2 *.png
列出allpic.tar.gz中的所有文件
tar -tjf allpic.tar.bz2
將allpic.tar.bz2文件解壓到當(dāng)前目錄
tar -xjf allpic.tar.bz2
調(diào)用xz壓縮和解壓縮
將所有.png的文件打包并壓縮成一個(gè)名為allpic.tar.gz文件
tar -cJf allpic.tar.xz *.png
列出allpic.tar.gz中的所有文件
tar -tJf allpic.tar.xz
將allpic.tar.bz2文件解壓到當(dāng)前目錄
tar -xJf allpic.tar.xz
各種文件后綴解壓示例總結(jié)
我們經(jīng)常需要的是下載到一個(gè)文件,如何解壓的問(wèn)題,那么下面再作個(gè)歸類(lèi)總結(jié):
對(duì)于.tar結(jié)尾的文件
tar -xf allpic.tar
對(duì)于tar.gz或.tgz結(jié)尾的文件
tar -zxf allpic.tar.gz
對(duì)于tar.bz2結(jié)尾的文件
tar -jxf allpic.tar.bz2
對(duì)于tar.xz結(jié)尾的文件
tar -Jxf allpic.tar.xz
對(duì)于.gz結(jié)尾的文件,而不是tar.gz的文件
gzip -d allpic.gz
gunzip allpic.gz
對(duì)于.gz .bz2 .xz結(jié)尾,而沒(méi)有前面沒(méi)有tar的文件,可以參數(shù)上述的表格,如
gzip -d mypic.gz
bzip2 -d mypic.bz2
xz -d mypic.xz
gunzip mypic.gz
bunzip2 mypic.bz2
unxz mypic.xz
對(duì)于.zip文件結(jié)尾(windows下常見(jiàn))
unzip allpic.zip
對(duì)于.rar文件結(jié)尾
unrar e allpic.rar
以上這篇詳談Linux打包與壓縮及tar命令就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)單的遠(yuǎn)程FTP定時(shí)備份Shell腳本分享
這篇文章主要介紹了簡(jiǎn)單的遠(yuǎn)程FTP定時(shí)備份Shell腳本分享,,需要的朋友可以參考下2014-07-07Bash Shell中雙引號(hào)中的感嘆號(hào)問(wèn)題小結(jié)
當(dāng)你在雙引號(hào)中使用感嘆號(hào)時(shí),如果你在雙引號(hào)中直接使用感嘆號(hào),它可能會(huì)被解釋為歷史擴(kuò)展的一部分,這篇文章主要介紹了Bash Shell中雙引號(hào)中的感嘆號(hào)問(wèn)題小結(jié),需要的朋友可以參考下2024-03-03linux shell實(shí)現(xiàn)隨機(jī)數(shù)幾種方法分享(date,random,uuid)
這篇文章主要介紹了linux shell實(shí)現(xiàn)隨機(jī)數(shù)多種方法(date,random,uuid),需要的朋友可以參考下2015-10-10Linux shell ftp命令根據(jù)文件日期下載文件的方法
最近做項(xiàng)目遇到這樣的需求要求ftp獲取遠(yuǎn)程數(shù)據(jù)的文件,根據(jù)文件的創(chuàng)建時(shí)間點(diǎn)下載文件。下面小編給大家分享知識(shí)點(diǎn)小結(jié),感興趣的朋友要求看看吧2017-09-09linux修改tomcat默認(rèn)訪問(wèn)項(xiàng)目的具體步驟(必看篇)
下面小編就為大家?guī)?lái)一篇linux修改tomcat默認(rèn)訪問(wèn)項(xiàng)目的具體步驟(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03