linux tar命令中exclude参数怎么用?

发布时间:2020-01-30编辑:脚本学堂
有关linux下tar命令中exclude参数的用法,tar命令中exclude使用时的注意事项,需要的朋友参考下。

经常用到的linuxcmd/ target=_blank class=infotextkey>linux命令中,tar命令可以说是最抛头露面的一个了,它是一个linux压缩与解压缩命令,本节不介绍tar命令的基本用法,重点说说exclude参数怎么使用?

如果/tmp/test目录下有a、b两个目录,c、d两个文件,要想对test目录打包,但要排除b目录和d文件。

例1、
 

cd /tmp
tar czvf test.tar.gz ./test --exclude=./test/b --exclude=./test/d

使用相对路径时,解包之后是相对路径。
 
例2、

cd /tmp
tar czvf test.tar.gz /tmp/test --exclude=/tmp/test/b --exclude=/tmp/test/d
 

 
使用相对路径时,解包之后是完整路径。
 
问题:
./docs/下面有200703,200704,200705……200808等等文件夹,还有接近5万个文件,文件命名没有规律,现在要打包除了文件夹以外的其他文件。
 
使用:
 

cd docs
tar zcvf list.tar.gz * --exclude 200703 200704 200705 200706 200707 200708 200709 200710 200711 200712 200801 200802 200803 200804 200805 200806 200807 200808


提示:参数过长:bash: /bin/tar: Argument list too long
 

tar zcvf list.tar.gz * --exclude 200*

提示:参数过长:bash: /bin/tar: Argument list too long
 
解决方法:
 

cd ..
tar zcvf list.tar.gz docs --exclude=docs/200*