파일이있는 폴더를 Unix / Linux의 다른 폴더로 어떻게 복사합니까? [닫은]


1191

해당 폴더에 파일이있는 폴더를 다른 폴더로 복사하는 데 문제가 있습니다. 명령 cp -r은 폴더의 파일을 복사하지 않습니다.




이것이 주제에 대해 더 많은 SE로 마이그레이션 할 수 있기를 바랍니다.
jrh

6
배쉬 프로그래밍은 주제에 관한 것 입니다.
xskxzr 2016 년

답변:


1978

찾고있는 옵션은 -R입니다.

cp -R path_to_source path_to_destination/
  • 경우 destination존재하지 않는, 그것은 생성됩니다.
  • -R의미 copy directories recursively합니다. -r대소 문자를 구분하지 않기 때문에 사용할 수도 있습니다 .
  • /@ muni764의 comment에 따라 후행을 추가하여 뉘앙스에 주목하십시오 .

5
dockerfile 의이 정확한 명령이 전체 디렉토리를 복사하는 대신 모든 소스 디렉토리 파일을 대상으로 복사하는 이유가 궁금합니다.
holms

4
나는 결국 '/'가 차이를 만들고 그것이 당신의 경험을 설명 할 수 있다고 생각합니다. 소스에 슬래시가 포함 된 경우 디렉토리의 내용 만 복사합니다. 후행 슬래시를 포함하지 않으면 디렉토리와 그 안의 내용도 복사합니다. 내 기억은이 동작은 명령에 따라 다르며 OS에 따라 약간 씩 달라질 수 있습니다. 자세한 내용 다음과 같습니다 .
OllieBrown

23
소스를 포함하지 않으려는 경우 소스 상위 폴더를 복사하지 않고 모든 항목 (심볼 링크, 숨겨진 파일)을 복사하려면 -ra source /를 사용해야합니다. 목적지. 이렇게하면 폴더의 내용이 복사되지만 부모 폴더 자체는 복사되지 않으므로 때로는 편리합니다. 차이점은 /입니다.
muni764

복사 할 디렉토리가 심볼릭 링크 인 경우에도 올바르게 작동하는 것 같습니다.
Gdalya

3
소스에서 "슬래시 도트"의 중요성에 cp -r src/. dest대해 언급 한 것을 알고 있지만 여전히 매번 놓치는 것 같습니다.
bbeecher

368

cp명령을 찾고 있습니다. 복사하려는 디렉토리 외부에 있도록 디렉토리를 변경해야합니다.

복사중인 디렉토리가 호출 dir1되어 /home/Pictures폴더 에 복사하려는 경우 :

cp -r dir1/ ~/Pictures/

Linux는 대소 문자를 구분하며 /파일이 아니라는 사실을 알기 위해 각 디렉토리 뒤에 필요 합니다. ~터미널의 특수 문자로 현재 사용자의 홈 디렉토리로 자동 평가됩니다. 어떤 디렉토리에 있는지 알아야하는 경우 다음 명령을 사용하십시오.pwd .

Linux 명령 사용법을 모르는 경우 다음을 입력하여 참조 할 수있는 매뉴얼 페이지가 있습니다.

man [insert command here]

터미널 프롬프트에서.

또한 터미널에 입력 할 때 긴 파일 경로를 자동 완성 Tab하려면 경로 입력을 시작한 후 적중 할 수 있으며 선택 사항이 표시되거나 경로의 나머지 부분을 삽입합니다.


6
더 명확히하기 -r위해이 옵션은 디렉토리를 재귀 적으로 복사합니다.
TVann

5
OP 는 명령 사용하고 cp -r있지만 제대로 작동하지 않았다고 명시하지 않았습니까 ?
MD XF

4
맨 페이지에 대한 정보를 포함시킨 이유는 이러한 플래그가 배포판에 따라 달라질 수 있기 때문입니다. 그러나 대부분의 경우, 그것은 나타납니다 -r, --recursive그리고 -R동일합니다. 또한 일반적인 함정 등이 좋을 것입니다.
Alex W

6
내용뿐만 아니라 디렉토리를 이식 ​​가능하게 복사하려면 소스 폴더의 마지막 대시를 제거하십시오. cp -r dir1 ~/Pictures/
mehtunguh

105

사용하다:

$ cp -R SRCFOLDER DESTFOLDER/

4
이것이 내가 한 방식이며 demo1_copy이미 존재하지 않는 것입니다$ ls demo1 demo3 README.md $ cp -R demo1/ demo1_copy/
HattrickNZ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.