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를 입력하십시오..