Linux常用命令中,有很多用于對文件的壓縮或解壓,本文將介紹這些解壓縮命令中不常見卻非常實用的用法。
tar是linux中最常用的解壓縮命令。tar命令可用于處理后綴名為tar,tar.gz,tgz,.tar.Zlinux常用命令,tar.bz2的文件。
涉及參數(shù)說明:
-c 建立新的壓縮文件
-r 添加文件到已經(jīng)壓縮的文件
-u 添加改變了和現(xiàn)有的文件到已經(jīng)存在的壓縮文件
-x 從壓縮的文件中提取文件
-t 顯示壓縮文件的內(nèi)容
-z 支持gzip解壓文件
-j 支持bzip2解壓文件
-v 顯示操作過程
-k 保留源有文件不覆蓋
-C 切換到指定目錄
-f 指定壓縮文件
--delete 刪除包中文件
--strip-components 去除目錄
--add-file 向包中添加文件
tar -cvf test.tar test1.log test2.log #歸檔多個文件
tar -cvf test.tar test/* #歸檔test目錄下所有文件
tar -cvf test.tar *.log #歸檔所有以.log結(jié)尾的文件
由于這種方式不會進行壓縮,僅做了歸檔,因此速度極快,同時占用空間也較大。
這種方式打包對文件進行了壓縮:
tar -zcvf test.tar.gz file1 file2 #打包,并以gzip壓縮
tar -jcvf test.tar.bz2 file1 file2 #打包,并以bzip2壓縮
如果不想解壓,只是想查看壓縮包中的文件內(nèi)容,可以使用-t參數(shù):
tar -tvf test.tar #可查看test包中有哪些文件
有時候再打包后可能需要刪除源文件,但一個個刪除顯得麻煩,我們可以使用--remove-files 選項:
tar -zcvf test.tar.gz test.log --remove-files
對于某些目錄下的文件,可能只需要打包部分文件,因此可以使用--exclude選項排除一些不需要打包的文件:
tar -zcvf test.tar.gz --exclude=test/*.log test/* #打包test目錄下所有文件,排除以.log結(jié)尾的文件
這里用到了--exclude選項,支持通配符和正則表達式,因此也非常強大。
例如,壓縮包中已經(jīng)打入了test以及其他文件,現(xiàn)在你只想更新壓縮包中的test文件,那么你可以使用--add-file選項:
tar -tf test.tar --add-file=test #只針對tar包
向tar包中增加文件可使用-r參數(shù):
tar -rf test.tar testfile #在test.tar包中增加文件,只針對tar包
在不解壓的情況下,可使用--delete選項刪除包中的文件:
tar --delete -f test.tar test1 #從test.tar中刪除test1文件
tar -xvf test.tar.gz
tar -xvf test.tar
tar -xvf test.tar.gz -C dir
tar -xvf test.tar -C dir
例如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目錄
上一個教程:Linux查看命令之od命令詳解
下一個教程:Linux常用20個命令