홈페이지 » 어떻게 » Linux에서 하나의 명령으로 여러 디렉토리에 파일을 복사하는 방법

    Linux에서 하나의 명령으로 여러 디렉토리에 파일을 복사하는 방법

    Linux 명령 행을 사용하여 파일을 복사하는 것은 쉽습니다. 그러나 동일한 파일을 여러 위치에 복사하려면 어떻게해야합니까? 그것도 쉽습니다. 한 명령으로 어떻게하는지 보여 드리겠습니다..

    일반적으로 하나의 파일을 복사하려면 cp 명령, 소스 파일 및 대상 디렉토리에 링크 :

    cp ~ / Documents / FileToBeCopied.txt ~ / TextFiles /

    두 개의 디렉토리로 복사하려면 많은 사람들이 다른 목적지로 두 번 더 명령을 실행하면됩니다.

    cp ~ / Documents / FileToBeCopied.txt ~ / Dropbox /
    cp ~ / Documents / FileToBeCopied.txt / media / lori / MYUSBDRIVE /

    그러나 한 명령으로 동일한 작업을 수행 할 수 있습니다.

    에코 dir1 dir2 dir3 | xargs -n 1 cp file1

    다음은이 명령의 작동 방식입니다. 그만큼 에코 명령은 일반적으로 화면에 기록합니다. 그러나이 경우 우리는 에코 명령을 xargs 명령. 이렇게하려면 파이프 기호 ( | ) 하나의 명령에서 다른 명령으로 입력을 전달합니다. 그만큼 xargs 명령은 cp 명령을 세 번 반복하면 매번 다음 디렉토리 경로가 에코 명령의 끝에 cp 명령. 전달되는 세 가지 인수가 있습니다. xargs , 하지만 -n 1 옵션의 xargs 명령은 한 번에 이러한 인수 중 하나만 추가하여 cp 명령이 실행될 때마다.

    그래서 이전 예제를 고수하기 위해 세 개의 분리 된 cp 위의 명령은 다음과 같이 하나의 명령으로 결합 될 수 있습니다.

    echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp ~ / Documents / FileToBeCopied.txt

    복사되는 파일이 지정된 대상 디렉토리 중 하나에 있으면 해당 대상에있는 파일이 자동으로 대체됩니다. 파일을 바꿀지 묻지 않습니다. (일반적으로 cp 명령을 사용하여 파일을 단일 위치에 복사하면 -나는 옵션을 사용하여 기존 파일을 바꿀 것인지 묻습니다. 그러나, 그 -나는 옵션은 대화 형 옵션입니다. cp 사용자로부터 입력을 요청하는 명령). 대화 형 옵션을 사용할 수 없습니다. cp 명령과 함께 사용할 때 xargs .)

    고려해야 할 또 하나의 점은, 매우 큰 파일을 복사하는 경우, no-clobber를 추가하는 것입니다 ( -엔 ) 옵션을 cp 명령을 사용하십시오. 이 옵션은 목적지에 이미 존재하는 파일을 자동으로 덮어 쓰지 않도록합니다. 네트워크를 통해 매우 큰 파일을 복사하는 경우 속도가 느려질 수 있으며 파일 복사 및 교체에 필요한 리소스를 사용하지 않아도됩니다. 다음 명령은 -엔 옵션을 사용하고 파일이 이미 대상에있는 경우 echo 문에 대한 인수에 나열된 모든 대상으로 파일을 복사하지 않습니다.

    echo ~ / TextFiles / ~ / Dropbox / media / lori / MYUSBDRIVE | xargs -n 1 cp -n ~ / Documents / FileToBeCopied.txt

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