1 壓縮文件技術(shù)
通俗點(diǎn)說(shuō)粹湃,就是文件中有很多空閑空間蕴侧,不是完全填滿(mǎn),壓縮技術(shù)就是將這些空間填滿(mǎn),讓整個(gè)文件占用的容量下降赁濒。但這些壓縮文件無(wú)法被操作系統(tǒng)使用轨奄,所以需要解壓。壓縮后與壓縮的文件所占用的磁盤(pán)空間大小拒炎,稱(chēng)為壓縮比挪拟。
2 Linux常見(jiàn)壓縮命令
Linux的壓縮命令非常多,不同的命令使用的壓縮技術(shù)也不同击你,所以彼此之間無(wú)法互通壓縮/解壓文件玉组。雖然文件屬性跟文件名無(wú)關(guān),為了好看丁侄,適當(dāng)用了擴(kuò)展名惯雳。
下面是常見(jiàn)的壓縮文件擴(kuò)展名:
*.Z compress程序壓縮的文件;
*.zip zip程序壓縮的文件;
*.gz gzip程序壓縮的文件;
*.bz2 bzip2程序壓縮的文件;
*.xz xz程序壓縮的文件;
*.tar tar程序打包的數(shù)據(jù),并沒(méi)有壓縮過(guò);
*.tar.gz tar程序打包的文件,其中并且經(jīng)過(guò)gzip的壓縮
*.tar.bz2 tar程序打包的文件,其中并且經(jīng)過(guò)bzip2的壓縮
*.tar.xz tar程序打包的文件,其中并且經(jīng)過(guò)xz的壓縮
壓縮命令僅能針對(duì)一個(gè)文件進(jìn)行壓縮和解壓,所以 tar 出現(xiàn)了绒障,tar 可以將很多文件打包成一個(gè)文件吨凑,甚至是一個(gè)目錄,僅僅是打包,無(wú)壓縮功能鸵钝。
.zip文件
zip是個(gè)使用廣泛的壓縮程序糙臼,文件經(jīng)它壓縮后會(huì)另外產(chǎn)生具有”.zip”擴(kuò)展名的壓縮文件。zip格式其實(shí)和windows的zip格式是一樣的恩商,可以和windows相互解壓縮使用变逃。
壓縮文件:zip 壓縮文件名 源文件
壓縮目錄:zip -r 壓縮文件名 源目錄
解壓縮文件:unzip 壓縮文件
.gz文件
gzip 為了替換 compress 提供更好的壓縮比,壓縮過(guò)的文件可以在windows中解壓怠堪。
gzip [-cdtv#] 文件名
參數(shù):
-c : 將壓縮數(shù)據(jù)輸出到屏幕上揽乱,可通過(guò)數(shù)據(jù)流重定向來(lái)處理
-d : 解壓縮的參數(shù)
-t: 用來(lái)檢驗(yàn)一個(gè)壓縮文件的一致性,看文件有無(wú)錯(cuò)誤
-v: 顯示源文件 / 壓縮文件的壓縮比信息
-#: # 為數(shù)字, -1 最快粟矿,壓縮比最差凰棉,-9 最慢,壓縮比最好,默認(rèn) -6
zcat/zmore/zless/zgrep
這些是gzip命令衍生出來(lái)的命令陌粹,不解壓就可以查看由文本類(lèi)型的文件壓縮而來(lái)的壓縮文件撒犀,
類(lèi)比cat/more/less/grep
.bz2
bzip2是為了提供比gzip更好的壓縮比的。
bzip2 [-cdkzv#] 文件名
選項(xiàng)與參數(shù):
-c:將壓縮的過(guò)程產(chǎn)生的數(shù)據(jù)輸出到屏幕上
-d:解壓縮的參數(shù)
-k:保留原始文件,而不會(huì)刪除原始的文件
-z:壓縮的參數(shù) (默認(rèn)值,可以不加)
-v:可以顯示出原文件/壓縮文件的壓縮比等信息
-#:與gzip同樣的,都是在計(jì)算壓縮比的參數(shù),-9最佳, -1最快
bzcat/bzmore/bzless/bzgrep
和上面的zcat/zmore/zless/zgrep類(lèi)似
.xz
為了壓縮比更高 掏秩, 用法和 gzip bzip2 相似
xz [-dtlkc#] 文件名
參數(shù):
-d: 解壓
-t: 測(cè)試壓縮文件的完整性,看是否有錯(cuò)
-l: 列出壓縮文件的相關(guān)信息
-k: 保留原本文件不刪除
-c: 數(shù)據(jù)在屏幕上輸出
-# : 選擇壓縮比
xzcat/xzmore/xzless/xzgrep
和上面的zcat/zmore/zless/zgrep類(lèi)似
3 打包命令
tar 是一個(gè)打包命令或舞,可以將多個(gè)目錄或文件打包成一個(gè)大文件,同時(shí)使用 gzip 蒙幻、 bzip 映凳、 xz 的支持,對(duì)該文件進(jìn)行壓縮邮破。
tar 的命令選項(xiàng)很多诈豌,常用的 :
tar [-z | -j | -J] [cv] [-f 待建立的新文件名 ] filename ... 打包與壓縮
tar [z | -j | -J] [tv] [-f 既有的 tar 文件名 ] 查看文件名
tar [-z | -j | -J] [xv] [-f 既有的 tar 文件名 ] [-C 目錄 ] 解壓縮
參數(shù) :
-z: 通過(guò) gzip 壓縮,文件名最好是 tar.gz
-j: 通過(guò) bzip2 壓縮决乎,文件名最好是 tar.bz2
-J: 通過(guò) xz 壓縮队询,文件名最好是 tar.xz
-c: 建立打包文件
-t : 查看打包文件的有哪些文件名
-x: 解包或解壓功能
-v: 壓縮或解壓的過(guò)程中,將正在處理的文件名顯示出來(lái)
-f filename: 要被處理的文件名构诚,建議 -f 單獨(dú)寫(xiě)一個(gè)選項(xiàng)蚌斩,因?yàn)檫@個(gè) f 選項(xiàng)不同于其他選項(xiàng),
順序不能改范嘱,單獨(dú)寫(xiě)是為了避免問(wèn)題
-C 目錄 : 在解壓的時(shí)候用,如果要在特定目錄解壓
-p : 小寫(xiě),保留備份數(shù)據(jù)的原本權(quán)限和屬性
-P : 大寫(xiě),保留絕對(duì)路徑
記住以下三個(gè)重點(diǎn)命令即可
壓縮: tar -jcv -f filename.tar.bz2 要被壓縮的文件或目錄
查詢(xún): tar -jtv -f filename.tar.bz2
解壓: tar -jxv -f filename.tar.bz2 -C 解壓的目錄
舉例
壓縮maven目錄為maven.tar.bz2
tar -jcv -f maven.tar.bz2 maven
查詢(xún)maven.tar.bz2中包含hadoop
tar -jtv -f maven.tar.bz2 | grep 'hadoop'
摘自《鳥(niǎo)哥的Linux私房菜》送膳,更多精彩參考 http://cn.linux.vbird.org/