Shell:将一个目录复制到多个目录

Shell:将一个目录复制到多个目录

YYY网站上有一个目录和结构:

site1.ru/wp-content/plugins/
site2.ru/wp-content/plugins/
...
site10.ru/wp-content/plugins/

任务:复制服务器上可用的YYY所有目录的目录。plugins

答案1

cp 

只能复制到一个目的地,因此您必须使用循环或执行类似操作

echo dir1 dir2 dir3 | xargs -n 1 cp file1

它将复制file1dir1dir2、 和dir3xargs将调用3 次来执行此操作,有关详细信息,cp请参阅手册页。xargs

发现于:https://stackoverflow.com/questions/195655/how-to-copy-a-file-to-multiple-directories-using-the-gnu-cp-command

答案2

cp一次只获取一个目的地,因此循环调用它。

for d in */wp-content/plugins/; do
  cp -Rp YYY "$d"
done

请注意,如果任何cp命令失败,此代码片段将继续运行。要在失败时立即中止,请先运行set -e。要继续(在权限被拒绝时有意义,而不是在磁盘已满时有意义)但仍报告错误,请将返回状态保存在变量中:

ret=0
for d in */wp-content/plugins/; do
  cp -Rp YYY "$d" || ret=1
done
return $ret      # from a function; `exit $ret` in a script

相关内容