Linux中用tar命令打包如何排除 所有 扩展名为 wdb的文件?

比如有一个文件夹叫basic,里面有很多文件及子文件夹,很多文件夹中都有*.wdb文件。因为这些文件都体积很大。我想打包basic文件夹下所有的文件,除了wdb格式的文件... 比如有一个文件夹叫 basic,里面有很多文件及子文件夹,很多文件夹中都有 *.wdb文件。因为这些文件都体积很大。我想打包basic文件夹下所有的文件,除了 wdb格式的文件,请问高手帮我写这个命令。用 find的什么的组合命令都可以。 展开
 我来答
百元新
电脑发烧友

推荐于2016-08-21 · 不会修电脑,但是你问我的我都知道
知道大有可为答主
回答量:3万
采纳率:87%
帮助的人:6281万
展开全部

Linux下tar命令exclude选项排除指定文件或目录

先复习一下常规的压缩解压缩使用办法:

压缩:tar zcvf filename.tar.gz folderName 

解压: tar zxvf filename.tar.gz

举例说明:

1、test 文件夹有如下文件

2、打包

3、这样是打包全部文件,假设需要排除jpg文件可以这么弄


这样,就会把jpg后缀的文件都排除了,包括子目录。

wiiiky
推荐于2020-03-15 · TA获得超过172个赞
知道答主
回答量:58
采纳率:0%
帮助的人:69.9万
展开全部
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,或者换一个变量
追问
*.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键上面那个
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微微一笑成路人eY
2012-08-05 · TA获得超过1187个赞
知道小有建树答主
回答量:517
采纳率:100%
帮助的人:879万
展开全部
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 //这个还是被打包了 。

……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式