问题
在/tmp/目录下有子目录aaa,bbb,ccc,ddd;和文件zz.txt,qq.txt,pp.php;但是在aaa子目录下有一个文件ccc.php。要求用一条命令将/tmp/下除ccc子目录之外的所有文件打包成/tmp/tmp.tar.gz,注意将aaa子目录下的ccc.php应该在压缩包中。
解决方法
可以用下面的命令来去除多个目录,并且还可以去除子目录的子目录
tar --exclude /tmp/t/ccc --exclude /tmp/t/ddd/tmp/t/ddd -zcvf tmp.tar.gz /tmp/t/*
其中
tar -czvf /tmp/tmp.tar.gz `find /tmp/* -path "/tmp/ccc" -prune -o -print`
这个方法可以
但是也不能除去两个以上的目录
以下两种方式都不行
tar --exclude /tmp/ccc /tmp/ddd -zcvf tmp.tar.gz /tmp/t/*
tar -czvf /tmp/tmp.tar.gz `find /tmp/* -path "/tmp/ccc /tmp/ddd" -prune -o -print`