
Linux 명령 줄을 사용하여 파일을 복사하는 것은 쉽습니다. 그러나 동일한 파일을 여러 다른 위치로 복사하려면 어떻게해야합니까? 그것도 쉽습니다. 그리고 우리는 하나의 명령으로 그것을하는 방법을 보여줄 것입니다.
일반적으로 하나의 파일을 복사하려면 cp 소스 파일 및 대상 디렉토리에 연결하는 명령 :
cp ~/Documents/FileToBeCopied.txt ~/TextFiles/
두 개 이상의 디렉토리에 복사하려면 많은 사람들이 다른 대상으로 명령을 두 번 더 실행하면됩니다.
cp ~/Documents/FileToBeCopied.txt ~/Dropbox/
cp ~/Documents/FileToBeCopied.txt /media/lori/MYUSBDRIVE/

그러나 하나의 명령으로 동일한 작업을 수행 할 수 있습니다.
echo dir1 dir2 dir3 | xargs -n 1 cp file1
이 명령의 작동 방식은 다음과 같습니다. 그만큼 echo 명령은 일반적으로 화면에 씁니다. 그러나이 경우에는 echo 에 대한 입력으로 명령 xargs 명령. 이를 위해 파이프 기호 ( | )는 한 명령의 출력을 다른 명령의 입력으로 공급합니다. 그만큼 xargs 명령은 cp 다음 디렉토리 경로를 추가 할 때마다 echo 끝에 명령 cp 명령. 세 가지 인수가 전달됩니다 xargs , 하지만 -n 1 옵션 xargs 명령은 한 번에 하나의 인수 만 추가하도록 지시합니다. cp 실행될 때마다 명령합니다.
이전의 예를 고수하기 위해 세 가지 분리 cp 위의 명령은 다음과 같이 하나의 명령으로 결합 될 수 있습니다.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp ~/Documents/FileToBeCopied.txt

복사중인 파일이 지정된 대상 디렉토리에 있으면 해당 대상의 파일이 자동으로 바뀝니다. 파일을 교체할지 묻지 않습니다. (일반적으로 cp 파일을 단일 위치에 복사하는 명령을 추가하면 -i 기존 파일을 바꿀 것인지 묻는 옵션입니다. 그러나, 그 -i 옵션은 대화식 옵션입니다. cp 사용자에게 입력을 요청하는 명령)과 함께 대화식 옵션을 사용할 수 없습니다. cp 함께 사용할 때 명령 xargs .)
고려해야 할 또 다른 사항은 매우 큰 파일을 복사하는 경우 no-clobber ( -n ) 옵션을 cp 위의 단일 명령에서 명령. 이 옵션은 파일이 이미 존재하는 경우 대상에서 파일을 덮어 쓰지 못하게합니다. 네트워크를 통해 매우 큰 파일을 복사하는 경우 속도가 느려 파일을 복사하고 교체하는 데 필요한 리소스를 사용하지 않을 수 있습니다. 다음 명령은 -n 옵션을 선택하고 파일이 해당 대상에 이미 존재하는 경우 인수에 나열된 대상에 파일을 echo 문에 복사하지 않습니다.
echo ~/TextFiles/ ~/Dropbox /media/lori/MYUSBDRIVE | xargs -n 1 cp -n ~/Documents/FileToBeCopied.txt

이러한 명령에 대한 자세한 정보는 Linux의 명령 행에서 man echo, man xargs 또는 man cp를 입력하십시오.








