关于tar的exclude选项
昨天晚上一网友问我
|
|
此命令中的 –exclude选项为什么不起作用
我看了这个的么一反映,不可能啊,命令完全没有错误,应该是可以执行的,遂在网上找了找答案。
看到CU论坛上面有朋友说
tar的–exclude用的不是正则表达式,而是wildcards
叫朋友改成
|
|
还是不行。。
又在另一帖子中看到,这个问题;
有一个tar命令如下:
tar -cvpzf /media/sda7/backup.tgz –exclude=/proc –exclude=/lost+found –exclude=/mnt –exclude=/sys –exclude=/media /本意是想备份根目录下的除了/proc /lost+found /mnt /sys /media 这些目录之外的文件的,但是没有起到作用,我想知道为什么???请高手给一个解释,谢谢了。
这个问题基本上跟我他的问题一样了,遂看各位前辈们的回复,里面成功的的有:
应该是:
tar -cvpzf /media/sda7/backup.tgz / –exclude=/proc –exclude=/lost+found –exclude=/mnt –exclude=/sys –exclude=/media
复制代码
–exclude需要放到最后,否则无效这是一个固定格式 tar -jcvpf target source
没查到 man 中有相关说明啊,倒是有:
1 2 3 4 5 6 7
tar -cf scr.tar --exclude='*.o' scr"
那可能与 tar 版本有关了。
确实没错 这句话说到点子上了!
以前习惯linux下 选项 最后写 用了BSD 发现了这个问题
比如在Linux下,ls -l test.txt和ls test.txt -l都是可以的,而BSD下只能写成前一种。
在最后,版主得出,exclude选项 跟tar的版本有关,不过从此贴里面可以看到 下面这种方式执行是成功的
|
|
即:
|
|
这种格式在我的vps上面也测试成功,不过还是请大家在使用这个命令的时候,先看一看man手册。
另外给出CU论坛的关于这个问题的链接吧。