将文件夹的子项复制到多个文件夹

时间:2011-09-09 06:38:50

标签: shell unix

是否有任何sh脚本将文件夹中的所有子元素复制到其他多个文件夹。我的想法是这样的。下面的文件夹将被复制。

/Parent/ChildDir1
/Parent/ChildDir2
/Parent/ChildFile1
/Parent/ChildFile2

目的地就像这样

/X/a/
/X/b/
/X/c/

必须覆盖。

由于

2 个答案:

答案 0 :(得分:1)

据我了解,您要将所有内容从/Parent/复制到多个目标文件夹?因此,/X/a//X/b//X/c/中的每一个都有自己独立的副本。在这种情况下,你可以循环遍历所有目的地:

DESTS = "/X/a/:/X/b/:/X/c/:"
SRC = "/Parent/"
while read -d: ddir; do 
    cp -r "$SRC" "$ddir"
done <<< $DESTS

如果找到:的正确调用,DESTS末尾的额外read可能是可移除的,我无法:(

答案 1 :(得分:0)

您可以使用find查找X中的所有目录,即X / a,X / b,X / c等,然后递归复制源目录:

find /path/to/X -type d -maxdepth 1 -exec cp -r /path/to/Parent {} \;

如果目录列表在文件中,您只需读取文件中的每一行并执行cp,如下所示:

while IFS= read -r dir
do
    cp -r /path/to/Parent "$dir"
done < dirs.txt