디렉토리와 그 내용을 새 디렉토리 이름으로 새 위치에 어떻게 복사합니까?


52

Linux 명령 줄을 처음 사용하고 있으며 현재 copy 명령을 사용하려고합니다.

하위 디렉토리 및 관련 파일이있는 디렉토리를 새로운 이름 (예 : directory_backup)을 가진 새 디렉토리로 복사 할 수 있는지 누구든지 알려주십시오.

미리 도움을 주셔서 감사합니다

답변:


69

당신은 사용 -r(재귀 적으로 복사)하고 새 이름을 지정

cp -r /path/to/directory /path/to/location/new-name

예를 복사하는 ... 실제 경로로 교체 stuff내 홈 디렉토리에서 기존 디렉토리 backup와 새로운 디렉토리의 이름을 stuff-backup(주이 디렉토리가 이미 존재하는 경우 stuff복사됩니다 그것을, 그것을 덮어 쓸 수 없습니다).

cp -r ~/stuff ~/backup/stuff-backup

~홈 디렉토리 /home/$USER또는 /home/zanna내 경우에 대한 바로 가기입니다 . 현재 작업 디렉토리가 홈 디렉토리 인 경우 생략 할 수 있습니다. 프롬프트에서이를 볼 수 있습니다.

zanna@monster:~$
              ^--the ~ here is where I am - home!

-vverbose 플래그를 추가하여 cp수행중인 각 사본 을 보고 할 수 있습니다 ...

$ cp -vr stuff backup/stuff-backup
'stuff/thing1' -> 'backup/stuff-backup/thing1'
'stuff/thing2' -> 'backup/stuff-backup/thing2
...

잔나 미안 나는 당신의 충고를 실천하고 내가가는 방법을 볼 것입니다. verbose 플래그의 아이디어처럼. 다른 명령이 진행되는 동안 보고서로도 작동한다고 가정합니다. 건배.
Edmuntu

@Edmuntu 죄송합니다. 예, 많은 명령에는 -v또는 --verbose플래그가 있습니다 :)
Zanna

초기 짧은 죄송합니다 "감사합니다".... 오류 리턴 키를 누르십시오.
Edmuntu

10

필요한 명령은 단순히 cp"복사"를 나타냅니다.

예를 들어 다음 구문 중 하나와 함께 사용할 수 있습니다.

cp SOURCEFILE TARGETFILE
cp SOURCEFILE TARGETDIRECTORY

첫 번째 변형은 대상 파일의 새 파일 이름을 지정할 수있는 반면 두 번째 변형은 대상 디렉토리에 동일한 이름의 사본을 만듭니다. 물론 자리 표시자를 유효한 경로로 대문자로 대체해야합니다.

그러나 cp기본적으로 디렉토리가 아닌 파일에서만 작동합니다. 모든 내용을 재귀 적으로 전체 디렉토리에 복사하려면 다음 -r옵션을 추가해야합니다 .

cp -r SOURCEDIRECTORY TARGETDIRECTORY

터미널 cp에 입력 하여 명령에 대해 자세히 알아볼 수 있습니다 man cp.


이 주석 섹션 Byte Commander에 사용되지 않습니다 ... 반환하여 라인을 변경하고 대신 게시하십시오. 당신의 대답에 매우 명확한 개요. 사용 가능한 도구의 올바른 사용법에 대한 지침을 얻었으므로 이제 해당 디렉토리를 정렬하기를 기대하십시오. 우수한.
Edmuntu

@Edmuntu 앞으로는 SHIFT + ENTER를 사용하여 줄을 쓰러 뜨리십시오.
TheOdd

@OwenHines 그 주석은 줄 바꿈과 추가 공백을 제거하고 편집기에서 공백을 제거해도 결과에서 아무것도 변경되지 않습니다.
바이트 사령관

@ByteCommander 아 맞아요. 글쎄, 그는 지금 알고있다.
TheOdd

6

일반적으로 유용한 cp 명령의 대안으로 rsync를 사용하면 원래 디렉토리 구조의 권한 / 타임 스탬프를 복제 할 수있는 이점이 있습니다.

rsync -av dir/ newdir

-a 아카이브 -v 상세

소스 디렉토리 뒤의 슬래시에 주목하십시오.


5

처음 복사하는 디렉토리로 변경하는 것이 더 쉽다는 것을 알았습니다. 이 예에서는 모든 사람이 호출 한 디렉토리로 변경합니다 /boot. 누구나 아래 명령을 복사하여 터미널에 붙여 넣을 수 있습니다.

cd /boot
sudo mkdir /boot_backup
sudo cp -r . /boot_backup
du /boot_backup -h

752K    /boot_backup/extlinux/themes/debian-wheezy
756K    /boot_backup/extlinux/themes
832K    /boot_backup/extlinux
2.5M    /boot_backup/grub/i386-pc
20K     /boot_backup/grub/locale
2.3M    /boot_backup/grub/fonts
7.2M    /boot_backup/grub
565M    /boot_backup

를 들어 cp명령을 현재 디렉토리로 식별 ./boot우리가 변경 디렉토리. 이 -r옵션을 사용하면 모든 하위 디렉토리를 재귀 적으로 포함 할 수 있습니다.

이 경우 du새 디렉토리의 모든 하위 디렉토리 및 총 파일 크기를 나열 하도록 실행 되었습니다 /boot_backup.

이 연습을 마치면 다음을 사용 sudo rm -r /boot_backup하여 새 디렉토리와 해당 하위 디렉토리를 제거하십시오.


1
이것은 현재 디렉토리에서 다른 디렉토리로 모든 파일을 복사하는 방법을 설명하지만 dir (및 그 내용)을 다른 이름 dir에 복사하는 방법에 대한 OP 질문에 완전히 대답하지는 않습니다. cp -r새로운 디렉토리를 생성하고 모든 파일을 그 디렉토리에 복사하는 것을 처리하는 더 짧은 명령 (예
:)이

1
복사 및 dir 방법과 내용을 설명합니다. 차이점은 우선 예방 습관으로 소스 디렉토리로 변경한다는 것입니다. cp -r당신이 권장하는대로 이미 세 번째 명령 줄에 있습니다. 이 튜토리얼은 모든 사람이 /boot디렉토리를 가지고 있다는 사실을 기반으로하며 자신의 컴퓨터에서 시도 할 수 있습니다. 내가 사용했다 cp -r /home/GroundZero/Documents /home/GroundZero/Documents_backup그들이 변화 할 것이다 - 독자 복사하여 자신의 터미널에 붙여 넣을 수없는 GroundZero오류에 대한 더 많은 작업과 기회를 만들어. 포함 된 자습서를 통해이 답변의 KISS에 감사드립니다.
WinEunuuchs2Unix

1
@GroundZero는 cd ~/Documents/SomeObsucreFolder/2016/Nov/현재 디렉토리를 소스 디렉토리로 설정하기 위해 터미널 프롬프트를 변경하여 철자가 올바른지 확인한 다음 cp -r .소스 를 사용 하여 소스 디렉토리를 다시 입력하지 않아도됩니다. 그것은 내가 좋은 습관이라고 생각하는 것입니다. 또한 한 번 소스 디렉토리로 변경은 할 쉽게 ls FIleName1, ls FileName2의 소스 디렉토리의 이름을 반복 할 필요없이 당신이 백업이 원하는 파일을 esnure to 등을 ls명령.
WinEunuuchs2Unix

5

아래 명령을 사용하여 한 위치에서 다른 하위 디렉토리로 디렉토리를 복사 할 수 있습니다.

cp -Rvp /home/edmuntu/data /home/edmuntu/mydata/

명령 설명 :

  • -R = 디렉토리를 재귀 적으로 복사
  • v = 수행중인 작업 설명
  • p = 타임 스탬프를 통해 권한과 소유권을 유지하는 데 도움이됩니다.

@Rakesh Chauhan에게 감사합니다. "타임 스탬프를 사용하여 권한과 소유권을 유지하십시오"??? 와우 .... 가야 겠어 !!!! 라인 명령의 또 다른 측면을 살펴 보겠습니다. 당신의 답변에 감사드립니다.
Edmuntu

4

cp찾고있는 기능을 수행하는 명령입니다. 그것은 복사의 약자이며 바로 그렇게합니다. 이 상황에서 당신에게 도움이 될 명령은

cp -R source/ destination/

source/폴더와 모든 하위 디렉토리 가에 복사 됩니다 destination/.

경우 destination/존재하지 않는, 그것은 생성됩니다.

-R플래그는 말한다 순환, 약자 cp모든 하위 디렉토리를 복사합니다.


감사합니다 @Owen Hines. 이와 같은 소리는 확실히 내 작업의 명령입니다. 건배
Edmuntu

1
@Edmuntu Glad 문제에 대한 해결책을 찾은 경우 그 아래의 확인 표시를 클릭하여 자신에게 맞는 답변을 표시해 주시겠습니까? 이렇게하면 해결중인 질문의 페이지를 보는 다른 사람들에게 경고 할 수 있습니다.
TheOdd

1

일반적으로 새로운 기본 작성 권한 세트가 아니라 사본을 작성할 때 파일 권한을 동일하게 유지하려고합니다. 이는 cp에 -a 플래그를 사용한다는 의미입니다.

cp -a file filenew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.