我想在复制时排除两个目录。
示例:
$ ls /root/tmp
a b c d e f
我想要排除目录a
和b
:
$ cp -rp /root/tmp/ /root/tmp1/
答案 0 :(得分:2)
rsync
可用于排除多个目录,如下所示:
rsync -av --exclude=/root/tmp/a --exclude=/root/tmp/b /root/tmp/ /root/tmp1/
使用cp
命令
cp -r /root/tmp/!(a | b) /root/tmp1/
在shopt -s extglob
命令之前执行cp
以在!
中启用cp
答案 1 :(得分:1)
在rsync
ubuntu 14.04
对我有用
rsync -av --exclude='/root/tmp/a' --exclude='/root/tmp/b'
/path/to/include /path/to/include /path/to/destination
答案 2 :(得分:0)
您可以在复制之前将目录排除为查找结果的一部分,但使用rsync
或cp
并启用了'!'
支持,这是Sathiya建议的一个更简单的解决方案。
请参阅下面的find
示例:
find /root/tmp/ -mindepth 1 -maxdepth 1 -type d ! -regex '\(.*a\|.*b\)' -exec cp -r {} /root/tmp1/ \;