當前目錄可能已經存在包中的文件,如果不想解壓出來的文件覆蓋當前已存在的文件,可使用-k參數(shù)(會拋出錯誤信息):
tar?-xvkf?test.tar.gz
特別提醒
前面所提到的解壓或者壓縮帶的f參數(shù)需要放在最后,因為它指定了壓縮包名字,否則會出現(xiàn)解壓或壓縮失敗。
zip和unzip命令主要用于處理zip包。
壓縮
涉及參數(shù)說明:
-d?從壓縮文件內刪除指定的文件。
-f?此參數(shù)的效果和指定"-u"參數(shù)類似,但不僅更新既有文件,如果某些文件原本不存在于壓縮文件內,使用本參數(shù)會一并將其加入壓縮文件中。
-j?只保存文件名稱及其內容,而不存放任何目錄名稱。
-r?遞歸處理,將指定目錄下的所有文件和子目錄一并處理。
-u?更換較新的文件到壓縮文件內。
-v?顯示指令執(zhí)行過程或顯示版本信息。
-y?直接保存符號連接,而非該連接所指向的文件,本參數(shù)僅在UNIX之類的系統(tǒng)下有效。
-?<壓縮效率>?壓縮效率是一個介于1-9的數(shù)值。
壓縮文件
zip?-r?test.zip?test/?#打包test目錄下的文件
zip?-rj?test.zip?test/?#打包test目錄下文件,且壓縮包不帶test目錄
指定壓縮率打包文件
zip?-r8?test.zip?test/*?#數(shù)值(1-9)越大,壓縮率越高,耗時越長
打包符號鏈接文件
前面的命令只能打包普通文件,如果想要打包符號鏈接文件,則需要使用參數(shù)-y:
zip??-ry?test.zip?test
向壓縮包中增加或更新文件
有時候需要向壓縮包中增加文件,但又不想重新解壓打包,可以使用參數(shù)-u:
zip?-u?test.zip?test2?#向test.zip?包中增加test2文件
壓縮時加密
壓縮時如果需要對壓縮包進行加密,可使用-P參數(shù):
zip?-r?test.zip?test1?test?-P?66666?#使用密碼66666加密
刪除壓縮包的特定文件
zip?-d?test.zip?test??#刪除test.zip包中的test文件
涉及參數(shù)說明:
-l?顯示壓縮文件內所包含的文件
-j?只保存文件名稱及其內容,而不存放任何目錄名稱。
-o?以壓縮文件內擁有最新更改時間的文件為準,將壓縮文件的更改時間設成和該
-v?顯示指令執(zhí)行過程或顯示版本信息。
-d?指定解壓目錄,目錄不存在會創(chuàng)建
查看壓縮包中的文件信息
unzip?-l?test.zip?#可以看到壓縮包中的文件名,日期等信息
unzip?-v?test.zip?#查看更多信息,例如crc校驗信息等
解壓壓縮包
unzip?-o?test.zip?-d?dir?#講test.zip解壓到dir目錄
解壓包中指定的文件
如果不知道需要解壓的文件名,可先查看包中的文件,然后使用下面的方法:
unzip?-o?test.zip?"1.log"?-d?dir?#解壓包中的1.log文件到dir目錄
unzip?-o?tet.zip?"*.log"?-d?dir??#解壓包中所有的log文件
解壓時去掉目錄結構
壓縮包中有多層目錄結構,普通解壓仍然會保留目錄結構,如果只想要壓縮包中的文件,可以使用-j參數(shù):
zip?-oj?test.zip?-d?./temp??
解壓jar包
jar包是java歸檔包,但同樣可用unzip解壓查看里面的文件:
unzip?-o?java.jar?-d?dir
涉及參數(shù)說明:
-k?保留源文件
-d?解開壓縮文件
-r?遞歸處理,將指定目錄下的所有文件及子目錄一并處理
-v?顯示指令執(zhí)行過程
上一個教程:Linux命令太多,怎么做成批處理
下一個教程:Linux ps命令詳解:查看正在運行的進程