如何以递归方式复制Linux/Unix上以"abc"开头的目录?

cwd*_*cwd 39 unix linux rsync copy

我有一个目录~/plugins/,里面有很多子目录.如果我想在其他地方只创建一个子目录,那么abc我可以用一行复制命令吗?我会假设这样的东西会起作用(但它没有):

cp -R ~/plugins/abc* ~/destination/

如果可能的话,我宁愿使用单行命令,因为我也想对rsync使用相同的语法,如果我必须做类似的事情

find ~/plugins/ -type d -name "abc*" -exec cp -R {} ~/destination;

那么这对cp命令工作正常,但这意味着我必须为每个目录运行一次rsync,这似乎并不高效:(

Dav*_*har 58

不确定你为什么尝试不起作用(但是什么是"复制"命令?),但这至少适用于Linux:

cp -r ~/plugins/abc* ~/destination
Run Code Online (Sandbox Code Playgroud)


Dir*_*tel 5

这是我经常使用的一个老技巧:

 (cd ~/plugins/ && tar cfp - abc/) | (cd ~/destination && tar xfpv -)
Run Code Online (Sandbox Code Playgroud)

其中p蜜饯属性,并且 ~/destination可以在任何地方.