是否有任何sh脚本将文件夹中的所有子元素复制到其他多个文件夹。我的想法是这样的。下面的文件夹将被复制。
/Parent/ChildDir1
/Parent/ChildDir2
/Parent/ChildFile1
/Parent/ChildFile2
目的地就像这样
/X/a/
/X/b/
/X/c/
必须覆盖。
由于
答案 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