유닉스에서 디렉토리를 복사


78

터미널 창을 사용하여 Unix에서 디렉토리 구조 dir1을 dir2로 복사하려면 어떻게해야합니까?


2
"cp -r / dir1 / dir2"맞습니까?
Dinesh Kumar

네 맞습니다. 답 중 하나를 솔루션으로 표시 할 수 있습니다.
qroberts

답변:


115
cp -rf /source/path/ /destination/path/

-r = 재귀, 모든 하위 디렉토리를 복사

-f = 기존 대상 파일을 열 수 없으면 강제로 제거하고 다시 시도하십시오.

참고-f 플래그를 사용 하면 복사 할 내용을 강제로 덮어 쓰므로 주의해야합니다 . 이 제안에 대해 @Nifle에게 감사합니다.

필요한 경우 * 와일드 카드를 사용하여 디렉토리의 모든 파일을 복사 할 수 있습니다.


11
나는 당신이 f깃발 을 사용해야한다는 것에 동의하지 않습니다 . -f if an existing destination file cannot be opened, remove it and try again
Nifle

개인적으로 나는 항상 -f 플래그를 사용합니다. 좋은 습관이 아니므로 아마도 당신이 옳을 것입니다.
qroberts

그것이 무엇을하고 있고 무엇을하고 있는지 알고 있다면 괜찮습니다. 그러나이 경우 경험이 부족한 사용자에게는 적합하지 않을 수 있습니다.
Nifle

@ Nifle 그래, 나는 당신이 무슨 말을하는지 이해합니다. 그가 그것을 강요한다면, 그것이 작동하지 않을 때보 다 작동 할 가능성이 더 낫다는 것입니다. 그것은 모두 당신이하는 일과 그것이하는 일을 이해하는 것에 달려 있습니다.
qroberts

-f<dest>에 <source>를 복사하는 경우 (<dest>의 내용을 덮어 쓰는 경우와 같이) <source>를 복사하는 경우 유용한 플래그에 대한 답변에 메모를 작성 하면 직접
투표

11

그동안 cp -R답변 (BTW BSD에 플래그의 경우 자본해야합니다, 모두 리눅스에서 지원됩니다) 맞다,이 타르를 포함하는 오래된 주문은 :

$ tar cf - . | (cd DIR; tar xf - )

도대체 왜 그렇게하겠습니까? tar는 단단하고 상징적 인 링크를 상당히 정교하게 이해하기 때문입니다 .

기존 심볼릭 링크를 동일한 텍스트를 가진 링크로 교체하기 위해 복사 하시겠습니까? 또는 동일한 대상에 대한 링크가 있습니까 (보상하기 위해 상대 경로 조정)? 아니면 대상의 비트 사본으로?

원본의 두 파일이 하드 링크 된 경우 새 구조에 두 개의 데이터 사본이 있습니까?

결정, 결정. 타르는 합리적인 기본값을 가지고 있지만 매우 구체적으로 설명 할 수 있습니다.


9

나는 좋아한다

cp -axv source dest

Rsync는 이것에 대한 또 다른 좋은 도구입니다.

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