
Linux中用tar命令打包如何排除 所有 扩展名为 wdb的文件?
比如有一个文件夹叫basic,里面有很多文件及子文件夹,很多文件夹中都有*.wdb文件。因为这些文件都体积很大。我想打包basic文件夹下所有的文件,除了wdb格式的文件...
比如有一个文件夹叫 basic,里面有很多文件及子文件夹,很多文件夹中都有 *.wdb文件。因为这些文件都体积很大。我想打包basic文件夹下所有的文件,除了 wdb格式的文件,请问高手帮我写这个命令。用 find的什么的组合命令都可以。
展开
3个回答
展开全部
find basic/ ! -type d ! -name *.wdb
这个命令将找到basic目录下的扩展名不是wdb的文件。!表示否定,! -type d不是目录,! -name *.wdb,名字与*.wdb不匹配的。
所以命令可以这样写
for i in `find basic/ ! -type d ! -name *.wdb`;do arg="$arg $i";done
把所有要打包的文件的路径按空格分割保存在变量arg中
你可以echo $arg查看是否正确
然后打包
tar czvf my.tar $arg
如果你要重复使用这个命令的话,记得使用命令unset arg重置变量arg,或者换一个变量
这个命令将找到basic目录下的扩展名不是wdb的文件。!表示否定,! -type d不是目录,! -name *.wdb,名字与*.wdb不匹配的。
所以命令可以这样写
for i in `find basic/ ! -type d ! -name *.wdb`;do arg="$arg $i";done
把所有要打包的文件的路径按空格分割保存在变量arg中
你可以echo $arg查看是否正确
然后打包
tar czvf my.tar $arg
如果你要重复使用这个命令的话,记得使用命令unset arg重置变量arg,或者换一个变量
追问
*.wdb 要加双引号,
命令无法运行,提示for do done 命令找不到,
arg变量没有。
我还是没搞定啊。
追答
我不知道你是这么运行的,这段代码在我机器上是可以运行的。你用的不是bash?
注意几点,for i in `find basic/ ! -type d ! -name *.wdb`后面一个分号,do arg="$arg $i"后面一个分号。
find basic/ ! -type d ! -name *.wdb用反引号包含,键盘tab键上面那个
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
find basic ! -name "*.wdb" | xargs tar cvzf a.tar.gz
追问
find basic ! -name "*.wdb"
这个命令可以找到我要的文件夹,
有后面命令打包的时候还是会把 *.wdb 文件打包。
怎么办啊。
实际运行还是会打包。
[user@lake PANEL]$ find NORMAL ! -name "*.wdb" | xargs tar cvzf a.tar.gz
NORMAL/
……
NORMAL/PANEL_NORMAL_15.wdb //这个还是被打包了 。
……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询