Macos Bash脚本将目录复制到多个其他目录

Macos Bash脚本将目录复制到多个其他目录,macos,bash,Macos,Bash,我有两个目录,src和build 在src中,我有一个名为core的文件夹,它是进行所有更新的地方 在build中,我有几个名称不同的文件夹,每个文件夹都具有与src相同的文件夹结构 我试图做的是将core文件夹从src复制到每个build子目录中 我试过使用 cp -r /src/core /build/* 而且 cp -r /src/core/ /build/*/ 任何帮助都将不胜感激,并解释它是如何工作的将是伟大的 谢谢:)一个“cp”将在某个地方复制所有内容。它不支持同时将多个副本

我有两个目录,
src
build

src
中,我有一个名为
core
的文件夹,它是进行所有更新的地方

build
中,我有几个名称不同的文件夹,每个文件夹都具有与
src
相同的文件夹结构

我试图做的是将
core
文件夹从
src
复制到每个
build
子目录中

我试过使用

cp -r /src/core /build/* 
而且

cp -r /src/core/ /build/*/
任何帮助都将不胜感激,并解释它是如何工作的将是伟大的


谢谢:)

一个“cp”将在某个地方复制所有内容。它不支持同时将多个副本复制到多个目标。shell将把命令行扩展到多个源和一个目标

您可以使用for循环:

for dest in /build/*; do cp -r /src/core $dest; done

您需要为每个dir运行
cp-rf源,因为您需要在for循环中运行它
ls-d/build/*/
将以$(ls-d/build/*/)为单位为i提供所有目录名,
;do cp-rf/src/code/$i/;完成
可能是一个解决方案。另外,请查看
rsync
哪一种更适合此类工作非常感谢!这在粘贴到命令行时起作用,但当我尝试将其作为别名添加时,它为我提供了cp选项。知道为什么吗?谢谢你能封装这个字符串吗?比如用引号
alias name='code here'
@SunSparc是的,我是这样写的:
alias src2build=“for dest in/build/*;do cp-r/src/core$dest;done”
并且它输出
用法:cp[-r[-H |-L |-P][-fi 124;-n][apvX]源文件目标文件cp[-r[-H |]-L |-P][-fi n apvX]源文件。。。target_目录
OK我知道了:
alias mycp=“for dest in/build/*;do cp-r/src/core\$dest;done”
注意$上的反斜杠。