将文件递归复制到所有子域文件夹

时间:2017-05-05 12:37:32

标签: bash shell unix scripting

在我的服务器上,我有x个子域 他们的文件夹名称是这样的:

example1.mydomain.com , example2.mydomain.com,  examplex.mydomain.com

它们都存在于一个地方。

我正在尝试编写一个简单的bash脚本,将文件夹SOURCE中的所有文件夹和文件复制到所有这些子域文件夹(并替换现有文件夹)。

换句话说,我想将我的文件从源文件复制到任何名称为* .mydomain.com的文件夹

我尝试过rsync但不能执行* .mydomain部分

2 个答案:

答案 0 :(得分:0)

您可以使用find命令搜索所有文件,然后使用此输出复制它们,例如假设您正在/ home中搜索并复制到/ target

    find /home -name "*.mydomain.com" -exec cp -r {} /target/  \;

但上面的解决方案中的一个问题我看到它可能会找到带有这些名称的文件/文件夹并将其复制(不确定它是否会保持相同的文件夹层次结构),也许如果您只是在查找文件夹然后尝试下面改为

    find /home -name "*.mydomain.com" -type d -exec cp -r {} /target/  \;

答案 1 :(得分:0)

我建议:

for i in *.mydomain.com; do rsync -aSv "SOURCE/" "$i"; done

SOURCE之后的尾随/非常重要。