
터미널 창을 사용하여 Unix에서 디렉토리 구조 dir1을 dir2(모든 하위 디렉토리 포함)로 복사하려면 어떻게 해야 합니까?
답변1
cp -rf /source/path/ /destination/path/
-r
= 재귀적, 모든 하위 디렉터리를 복사합니다.
-f
= 강제, 기존 대상 파일을 열 수 없는 경우 해당 파일을 제거하고 다시 시도하세요.
메모-f
복사한 내용을 강제로 덮어쓰게 되므로 플래그를 사용할 때는 주의해야 합니다 . 이 제안에 대해 @Nifle에게 감사드립니다.
필요한 경우 * 와일드카드를 사용하여 디렉터리의 모든 파일을 복사할 수 있습니다.
답변2
대답은 cp -R
맞지만(BSD에서 플래그의 경우는 대문자여야 하며 둘 다 Linux에서 지원됩니다)타르와 관련된 오래된 주문:
$ tar cf - . | (cd DIR; tar xf - )
도대체 왜 그런 짓을 하려는 걸까요? tar는 상당히 정교한 이해를 가지고 있기 때문에연결단단하고 상징적입니다.
복사하여 기존 기호 링크를 동일한 텍스트가 있는 기호 링크로 바꾸시겠습니까? 아니면 동일한 대상에 대한 링크가 있습니까(보상을 위해 상대 경로 조정)? 아니면 대상의 비트 단위 복사본을 사용합니까?
원본의 두 파일이 하드 링크된 경우 새 구조에 데이터 복사본이 두 개 있어야 합니까, 아니면 하나만 있어야 합니까?
결정, 결정. Tar에는 합리적인 기본값이 있지만 이에 대해 매우 구체적으로 지정할 수 있습니다.
답변3
좋아요
cp -axv source dest
Rsync는 이를 위한 또 다른 좋은 도구입니다.
rsync -va source dest