Linux的常用命令-解壓縮篇
今天小編要跟大家分享的文章是關(guān)于Linux的常用命令-解壓縮篇。Linux常用命令中,有很多用于對(duì)文件的壓縮或解壓,本文將介紹這些解壓縮命令中不常見(jiàn)卻非常實(shí)用的用法。Linux入門(mén)新手和正在Linux學(xué)習(xí)的小伙伴快來(lái)看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?/p>
tar
tar是Linux中最常用的解壓縮命令。tar命令可用于處理后綴名為tar,tar.gz,tgz,.tar.Z,tar.bz2的文件。
涉及參數(shù)說(shuō)明:
-c 建立新的壓縮文件
-r 添加文件到已經(jīng)壓縮的文件
-u 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件
-x 從壓縮的文件中提取文件
-t 顯示壓縮文件的內(nèi)容
-z 支持gzip解壓文件
-j 支持bzip2解壓文件
-v 顯示操作過(guò)程
-k 保留源有文件不覆蓋
-C 切換到指定目錄
-f 指定壓縮文件
--delete 刪除包中文件
--strip-components 去除目錄
--add-file 向包中添加文件
一、壓縮
1、歸檔tar包,不壓縮
tar -cvf test.tar test1.log test2.log #歸檔多個(gè)文件
tar -cvf test.tar test/* #歸檔test目錄下所有文件
tar -cvf test.tar *.log #歸檔所有以.log結(jié)尾的文件
由于這種方式不會(huì)進(jìn)行壓縮,僅做了歸檔,因此速度極快,同時(shí)占用空間也較大。
2、歸檔并壓縮為tar.gz或tar.bz2
這種方式打包對(duì)文件進(jìn)行了壓縮:
tar -zcvf test.tar.gz file1 file2 #打包,并以gzip壓縮
tar -jcvf test.tar.bz2 file1 file2 #打包,并以bzip2壓縮
3、查看壓縮包中的文件
如果不想解壓,只是想查看壓縮包中的文件內(nèi)容,可以使用-t參數(shù):
tar -tvf test.tar #可查看test包中有哪些文件
4、打包后刪除源文件
有時(shí)候再打包后可能需要?jiǎng)h除源文件,但一個(gè)個(gè)刪除顯得麻煩,我們可以使用--remove-files 選項(xiàng):
tar -zcvf test.tar.gz test.log --remove-files
5、打包除指定目錄或文件以外的文件
對(duì)于某些目錄下的文件,可能只需要打包部分文件,因此可以使用--exclude選項(xiàng)排除一些不需要打包的文件:
tar -zcvf test.tar.gz --exclude=test/*.log test/* #打包test目錄下所有文件,排除以.log結(jié)尾的文件
這里用到了--exclude選項(xiàng),支持通配符和正則表達(dá)式,因此也非常強(qiáng)大。
6、向壓縮包中更新文件
例如,壓縮包中已經(jīng)打入了test以及其他文件,現(xiàn)在你只想更新壓縮包中的test文件,那么你可以使用--add-file選項(xiàng):
tar -tf test.tar --add-file=test #只針對(duì)tar包
7、向tar包中增加文件
向tar包中增加文件可使用-r參數(shù):
tar -rf test.tar testfile #在test.tar包中增加文件,只針對(duì)tar包
8、刪除壓縮包中的文件
在不解壓的情況下,可使用--delete選項(xiàng)刪除包中的文件:
tar --delete -f test.tar test1 #從test.tar中刪除test1文件
二、解壓
1、解壓tar.gz和tar包到當(dāng)前目錄
tar -xvf test.tar.gz
tar -xvf test.tar
2、解壓到指定目錄
tar -xvf test.tar.gz -C dir
tar -xvf test.tar -C dir
3、解壓包中指定的文件
例如test.tar.gz包中文件情況如下:
1.txt
log/
log/1.log
log/2.log
log/2.log
log/4.log
log/5.log
如果我們只需要解壓出log目錄下的1.log,只需要執(zhí)行下面的命令:
tar -xvf test.tar.gz log/1.log
tar -xvf test.tar.gz log/1.log -C test #將1.log解壓到test目錄
4、解壓時(shí)去掉目錄結(jié)構(gòu)
壓縮包中的文件可能存在多級(jí)目錄,常規(guī)方式解壓出來(lái)后,對(duì)應(yīng)目錄也會(huì)存在。如果只想要壓縮包的文件,可以去掉目錄結(jié)構(gòu)(注意:同一文件夾下文件名不能重):
tar -xvf test.tar.gz --strip-components=1 #去掉一層目錄
5、解壓時(shí)不覆蓋原文件
當(dāng)前目錄可能已經(jīng)存在包中的文件,如果不想解壓出來(lái)的文件覆蓋當(dāng)前已存在的文件,可使用-k參數(shù)(會(huì)拋出錯(cuò)誤信息):
tar -xvkf test.tar.gz
特別提醒
前面所提到的解壓或者壓縮帶的f參數(shù)需要放在最后,因?yàn)樗付藟嚎s包名字,否則會(huì)出現(xiàn)解壓或壓縮失敗。
zip/unzip
zip和unzip命令主要用于處理zip包。
一、壓縮
涉及參數(shù)說(shuō)明:
-d 從壓縮文件內(nèi)刪除指定的文件。
-f 此參數(shù)的效果和指定"-u"參數(shù)類似,但不僅更新既有文件,如果某些文件原本不存在于壓縮文件內(nèi),使用本參數(shù)會(huì)一并將其加入壓縮文件中。
-j 只保存文件名稱及其內(nèi)容,而不存放任何目錄名稱。
-r 遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
-u 更換較新的文件到壓縮文件內(nèi)。
-v 顯示指令執(zhí)行過(guò)程或顯示版本信息。
-y 直接保存符號(hào)連接,而非該連接所指向的文件,本參數(shù)僅在UNIX之類的系統(tǒng)下有效。
- <壓縮效率> 壓縮效率是一個(gè)介于1-9的數(shù)值。
1、壓縮文件
zip -r test.zip test/ #打包test目錄下的文件
zip -rj test.zip test/ #打包test目錄下文件,且壓縮包不帶test目錄
2、指定壓縮率打包文件
zip -r8 test.zip test/* #數(shù)值(1-9)越大,壓縮率越高,耗時(shí)越長(zhǎng)
3、打包符號(hào)鏈接文件
前面的命令只能打包普通文件,如果想要打包符號(hào)鏈接文件,則需要使用參數(shù)-y:
zip -ry test.zip test
4、向壓縮包中增加或更新文件
有時(shí)候需要向壓縮包中增加文件,但又不想重新解壓打包,可以使用參數(shù)-u:
zip -u test.zip test2 #向test.zip 包中增加test2文件
5、壓縮時(shí)加密
壓縮時(shí)如果需要對(duì)壓縮包進(jìn)行加密,可使用-P參數(shù):
zip -r test.zip test1 test -P 66666 #使用密碼66666加密
6、刪除壓縮包的特定文件
zip -d test.zip test #刪除test.zip包中的test文件
二、解壓
涉及參數(shù)說(shuō)明:
-l 顯示壓縮文件內(nèi)所包含的文件
-j 只保存文件名稱及其內(nèi)容,而不存放任何目錄名稱。
-o 以壓縮文件內(nèi)擁有最新更改時(shí)間的文件為準(zhǔn),將壓縮文件的更改時(shí)間設(shè)成和該
-v 顯示指令執(zhí)行過(guò)程或顯示版本信息。
-d 指定解壓目錄,目錄不存在會(huì)創(chuàng)建
1、查看壓縮包中的文件信息
unzip -l test.zip #可以看到壓縮包中的文件名,日期等信息
unzip -v test.zip #查看更多信息,例如crc校驗(yàn)信息等
2、解壓壓縮包
unzip -o test.zip -d dir #講test.zip解壓到dir目錄
3、解壓包中指定的文件
如果不知道需要解壓的文件名,可先查看包中的文件,然后使用下面的方法:
unzip -o test.zip "1.log" -d dir #解壓包中的1.log文件到dir目錄
unzip -o tet.zip "*.log" -d dir #解壓包中所有的log文件
4、解壓時(shí)去掉目錄結(jié)構(gòu)
壓縮包中有多層目錄結(jié)構(gòu),普通解壓仍然會(huì)保留目錄結(jié)構(gòu),如果只想要壓縮包中的文件,可以使用-j參數(shù):
zip -oj test.zip -d ./temp
5、解壓jar包
jar包是java歸檔包,但同樣可用unzip解壓查看里面的文件:
unzip -o java.jar -d dir
gzip
涉及參數(shù)說(shuō)明:
-k 保留源文件
-d 解開(kāi)壓縮文件
-r 遞歸處理,將指定目錄下的所有文件及子目錄一并處理
-v 顯示指令執(zhí)行過(guò)程
tar命令帶有-z參數(shù),并且打包成tar.gz文件時(shí),便調(diào)用gzip進(jìn)行了壓縮。gzip對(duì)文本的壓縮率約有60%~70%,壓縮包文件常以gz為后綴。使用-k參數(shù)保留源文件:
gzip -k ./* #當(dāng)前目錄下所有文件進(jìn)行壓縮,每個(gè)文件一個(gè)gz包
gzip -rkv ./* 遞歸壓縮
解壓也很簡(jiǎn)單:
gzip -dv test.gz
bzip2
tar命令使用-j參數(shù)將文件打包為tar.bz2時(shí),便調(diào)用了bzip2進(jìn)行壓縮。bzip2壓縮或解壓后,會(huì)將源文件刪除。如果需要保留源文件,可使用-k參數(shù):
bzip2 -zk test #壓縮test文件
bzip2 -dk test.bz2 #解壓
rar/unrar
rar和unrar命令并非Linux發(fā)行版自帶命令,需要另外安裝。常見(jiàn)用法如下:
rar a test.tar test #將test文件壓縮為test.tar
rar e test.rar #解壓test.tar
unrar x test.rar #解壓test.tar
壓縮率比較
壓縮率一般來(lái)說(shuō):
tar.bz2>tar.gz>zip>tar
壓縮率越高,壓縮以及解壓的時(shí)間也就越長(zhǎng)。
總結(jié)
對(duì)文件進(jìn)行壓縮能夠節(jié)省磁盤(pán)空間,進(jìn)行網(wǎng)絡(luò)傳輸時(shí),也能節(jié)省帶寬,但是需要注意的是,空間和時(shí)間是需要根據(jù)實(shí)際應(yīng)用進(jìn)行權(quán)衡的。解壓縮命令較多,為避免在其他平臺(tái)使用不便,可選擇常用命令進(jìn)行壓縮文件。
以上就是小編今天為大家分享的關(guān)于Linux的常用命令-解壓縮篇的文章,希望本篇文章能夠?qū)φ趶氖翷inux相關(guān)工作的小伙伴們有所幫助。想要了解更多Linux相關(guān)知識(shí)記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來(lái)源于網(wǎng)絡(luò),侵刪!