将文件夹的子项复制到多个文件夹
问题描述:
是否有任何sh脚本可将文件夹中的所有子元素复制到其他多个文件夹。我想到的是这样的。下面的文件夹将被复制。将文件夹的子项复制到多个文件夹
/Parent/ChildDir1
/Parent/ChildDir2
/Parent/ChildFile1
/Parent/ChildFile2
目的地会是这样
/X/a/
/X/b/
/X/c/
的改写是必要的。
感谢
答
据我了解你,你要一切从/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
正确调用可能是可移动的额外:
,我不能:(
答
您可以使用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
哪个Shell?目标目录是否已经存在? –
你能否澄清一下应该去哪里?即'/ Parent/ChildDir1 =>/X/a','/ Parent/ChildDir2 =>/X/b'还是你的意思是其他映射? – Kerido
所有的孩子都会去到每个/ X/* /目录 – skuul