셸: 하나의 디렉터리를 여러 디렉터리에 복사

셸: 하나의 디렉터리를 여러 디렉터리에 복사

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

, 및 file1에 복사됩니다 . 이 작업을 수행하기 위해 3번 호출됩니다. 자세한 내용은 매뉴얼 페이지를 참조하세요 .dir1dir2dir3xargscpxargs

발견 날짜: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

관련 정보