cp dir recursivly不包括2个子目录

dr0*_*0zd 9 unix linux bash cp

我有1个目录,包含9个子目录和10个文件.子目录具有下一级子目录和文件.

/home/directory/
/home/directory/subdirectory1
/home/directory/subdirectory2
...
/home/directory/subdirectory9
/home/directory/file1
...
/home/directory/file10
Run Code Online (Sandbox Code Playgroud)

我想递归复制所有子目录和文件,但不包括:

/home/directory/subdirectory5
/home/directory/subdirectory7
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

小智 28

rsync -avz --exclude subdirectory5 --exclude subdirectory7 /home/directory/ target-path
Run Code Online (Sandbox Code Playgroud)


aio*_*obe 10

我不知道这样做的好方法cp,但使用rsync--exclude切换相当容易.


kev*_*kev 8

也许find命令会帮助你:

$ find /home/directory -mindepth 1 -maxdepth 1 -name 'subdirectory[57]' -or -exec cp -r {} /path/to/dir \;
Run Code Online (Sandbox Code Playgroud)