[linux] gnu cp 명령을 사용하여 파일을 여러 디렉토리에 복사하는 방법

cp 명령을 사용하여 단일 파일을 여러 디렉토리에 복사 할 수 있습니까?

작동하지 않는 다음을 시도했습니다.

cp file1 /foo/ /bar/
cp file1 {/foo/,/bar}

for 루프 또는 찾기를 사용하는 것이 가능하다는 것을 알고 있습니다. 그러나 gnu cp 명령을 사용하는 것이 가능합니까?



답변

아니요, cp여러 소스를 복사 할 수 있지만 단일 대상으로 만 복사됩니다. cp원하는 작업에 대해 대상마다 한 번씩 여러 번 호출하도록 준비해야합니다 . 당신이 말하는 것처럼, 루프 또는 다른 도구를 사용합니다.


답변

당신이 할 수 없습니다 cp만 그러나 당신은 결합 할 수 있습니다 cp으로 xargs:

echo dir1 dir2 dir3 | xargs -n 1 cp file1

복사 것인가 file1dir1, dir2그리고 dir3. xargscp작업을 수행하려면 3 번 전화 xargs하십시오. 자세한 내용은 맨 페이지 를 참조하십시오.


답변

와일드 카드는 Roberts 코드와도 작동

echo ./fs*/* | xargs -n 1 cp test 


답변

내가 볼 수있는 한 다음을 사용할 수 있습니다.

ls | xargs -n 1 cp -i file.dat

-i의 옵션 cp명령 수단은 당신이 가진 현재 디렉토리에있는 파일을 덮어 쓸 것인지 묻는 메시지가됩니다 file.dat. 완전 자동 솔루션은 아니지만 나에게 도움이되었습니다.


답변

내가 사용하는 것이 cat그리고 tee내가에서 본 응답에 따라 /superuser/32630/parallel-file-copy-from-single-source-to-multiple-targets 대신 cp.

예를 들면 다음과 같습니다.

cat inputfile | tee outfile1 outfile2 > /dev/null


답변

이 답변은 모두 명백한 것보다 더 복잡해 보입니다.

for i in /foo /bar; do cp "$file1" "$i"; done


답변

ls -db di*/subdir | xargs -n 1 cp File

-b디렉토리 이름에 공백있는 경우 xargs에 의해 다른 항목으로 분리됩니다. 에코 버전과 관련 하여이 문제가 발생했습니다.