在我的基本目录中,我希望将三个目录复制到我的基本目录中的其他目录中。看起来像这样:
https://sb234.net/#!/
我希望复制这三个,所以结构如下:
base
|-Dir1
|-Dir2
|-Dir3
|-Dir4
.
.
.
|-foo
|-bar
|-mar
我有四个以上的目录,因此为什么要尝试创建一种以编程方式复制它们的方法。我尝试了以下操作均无济于事:
base
|-Dir1
|-foo
|-bar
|-mar
|-Dir2
|-foo
|-bar
|-mar
|-Dir3
|-foo
|-bar
|-mar
|-Dir4
|-foo
|-bar
|-mar
.
.
.
|-foo
|-bar
|-mar
尝试了最初的cp -avr ./{foo,bar,mar}/ ./Dir{1,2,3,4}
for file in `find . -type d -name ./Dir*/`; do (cd "$file" && cp ../{foo,bar,mar}/ .); done
解决方案后,我意识到它仅适用于单个目的地,因此我尝试了几次循环,但我无法使它们起作用。
答案 0 :(得分:0)
你快到了。
请您尝试以下操作:
for d in base/Dir*; do
cp -av base/{foo,bar,mar} "$d"
done
请注意,如果路径名包含空格,制表符或换行符,for file in `find ..`
可能会中断。将Dir*
与globing结合使用会很可靠。
希望这会有所帮助。