复制目录时排除目录

1 unix linux shell cp

我想在复制时排除两个目录。

例子:

$ ls /root/tmp
a b c d e f    
Run Code Online (Sandbox Code Playgroud)

我想排除目录ab

$ cp -rp /root/tmp/ /root/tmp1/
Run Code Online (Sandbox Code Playgroud)

Sat*_*iya 6

rsync可以用来排除多个目录,如下所示:

rsync -av --exclude=/root/tmp/a --exclude=/root/tmp/b /root/tmp/ /root/tmp1/
Run Code Online (Sandbox Code Playgroud)

cp命令

cp -r /root/tmp/!(a | b) /root/tmp1/
Run Code Online (Sandbox Code Playgroud)

在命令shopt -s extglob 之前执行 以启用cp!cp