比如有一个文件夹叫 basic,里面有很多文件及子文件夹,很多文件夹中都有 *.wdb文件。因为这些文件都体积很大。我想打包basic文件夹下所有的文件,除了 wdb格式的文件,请问高手帮我写这个命令。用 find的什么的组合命令都可以。
Linux下tar命令exclude选项排除指定文件或目录
先复习一下常规的压缩解压缩使用办法:
压缩:tar zcvf filename.tar.gz folderName
解压: tar zxvf filename.tar.gz
举例说明:
1、test 文件夹有如下文件
2、打包
3、这样是打包全部文件,假设需要排除jpg文件可以这么弄
这样,就会把jpg后缀的文件都排除了,包括子目录。
*.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"
这个命令可以找到我要的文件夹,
有后面命令打包的时候还是会把 *.wdb 文件打包。
怎么办啊。
实际运行还是会打包。
[user@lake PANEL]$ find NORMAL ! -name "*.wdb" | xargs tar cvzf a.tar.gz
NORMAL/
……
NORMAL/PANEL_NORMAL_15.wdb //这个还是被打包了 。
……