我在目录中有以下内容:
DIR1
DIR2
文件1
file2
除了dir1
之外,我想把所有东西都搞砸了当我这样做时:
find . -path '*dir1*' -prune -o -print
我没有在输出中看到dir1(如预期的那样)
但是当我这样做时:
find . -path '*dir1*' -prune -o -exec tar -czvf documents.tgz '{}' \+
我看到dir1也在documents.tgz中被玷污了。为什么?
答案 0 :(得分:2)
如果使用"发现"不是强制性要求,假设" main_dir"作为父目录名。
tar --exclude=main_dir/dir1 -cvzf tarred_file.gz main_dir/
答案 1 :(得分:1)
我的猜测是当前目录('。')作为参数传递给tar(尽管我收到警告,可能你错过了吗?)。
这对我有用:
find . -path './dir1*' -prune -o -path './*' -exec tar -czvf documents.tar {} \+