我如何将除几个目录之外的所有文件从一个目录复制到另一个目录。例如:
cp -R test /www/test2 would copy all
但我想排除两个名为 log 和 logs 的文件夹。
我尝试过类似的事情:
find ~test -not -name logs,log | cp -R test /www/test2
但是你能帮我解释一下语法吗?
答案1
使用 rsync:
rsync -a --exclude=logs --exclude=log from/ to/
答案2
我认为你正在寻找类似的东西:
find dir -type d ! \( -name 'log' -o -name 'logs' \) | xargs -I{} cp -R {} /www/test2/{}
答案3
如果使用狂欢:
shopt -s extglob
cp -R test/!(log|logs) /www/test2