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
복사 것인가 file1
에 dir1
, dir2
그리고 dir3
. xargs
이 cp
작업을 수행하려면 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에 의해 다른 항목으로 분리됩니다. 에코 버전과 관련 하여이 문제가 발생했습니다.