“cp : 생략 디렉토리”는 무엇을 의미합니까?


408

다음 명령을 발행했습니다.

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

이렇게하면 다음과 같은 메시지가 나타납니다.

cp: omitting directory `Tag' 
cp: omitting directory `Test' 
cp: omitting directory `Text' 
cp: omitting directory `TimeSync' 
cp: omitting directory `Tool' 
cp: omitting directory `Translate' 
cp: omitting directory `Uri' 
cp: omitting directory `Validate' 

등등...

이 메시지가 나타나는 이유는 무엇입니까?

답변:


536

기본적으로 cp디렉토리의 하위 디렉토리가 아닌 직접 파일 만 복사합니다. cp: omitting directory 'directory'언급 된 디렉토리가 복사되지 않았다는 경고 메시지가 표시 됩니다.

이렇게하려면 -r(또는 --recursive) 옵션을 지정하십시오 .

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

매뉴얼 페이지 (명령 : man cp) 가능한 옵션의 개요가 포함되어 있습니다.


2
고마워 나는 어떻게 든 재귀 적으로 처리 할 것이라고 생각했다. 하지만. : D 다시 감사합니다. :)
MEM

11
@MEM :는가 *아니라 Bash에 의해 확장됩니다 cp. echo 당신의 명령 앞에 넣어서 직접 테스트하십시오 . 펼치면 앞에 ...library/Zend/있는 파일 및 디렉토리 와 일치 합니다.
Lekensteyn

좋은 소식은 omitting directory 'directory'해당 디렉토리를 삭제한다는 의미는 아닙니다.
Bishwas Mishra

@Lekensteyn 나는 한 사용자의 내용을 다른 사용자에게 복사하려고 시도했습니다. 그래서 chmod a+rx ~/복사를 시도한 후 사용자로부터 권한을 얻었습니다 cp /home/2110/* /home/2111/. 내가 잘못한 곳. 중복 질문을 할 수 없어서 죄송합니다. 나는 빠른 답변을 바랍니다 :)
jasinth premkumar

@jasinthpremkumar 파일은 /home/2110사용자 2110이 소유하고 파일은 /home/21112111이 소유해야합니다. 소유자를 설정하려면 다음과 같이 사용하십시오 sudo chown -R 2111 /home/2111.
Lekensteyn

40

이 메시지는 cp나열된 디렉토리를 복사하지 않았다는 의미입니다 . 이는 cp명시 적으로 지정하는지 또는를 사용하는지에 관계없이 파일 의 기본 동작입니다 *. 디렉토리를 복사하려면 -r"재귀"를 의미 하는 스위치를 사용하십시오 .


16

여기서 확인해야 할 몇 가지 사항 :

  1. 를 사용하지 마십시오 sudo. 필요하지 않습니다. 이미 자신의 홈 디렉토리에 내용을 쓸 수있는 권한이 있습니다.

  2. 메뉴에서 숨겨진 파일보기 / 표시를 선택하여 그래픽 파일 관리자에서 숨겨진 파일 및 디렉토리를 쉽게 볼 수 있습니다. 또는 Ctrl- 를 눌러도 H됩니다.

  3. 명령과 디렉토리의 내용을 복사 -R하려면 cp명령 의 옵션 을 사용해야합니다 .

  4. / home은 홈 디렉토리가 아닙니다. / home / username은 따라서 잘못된 위치에서 복사하려고합니다.

  5. 쉘은 대소 문자를 구분하므로 ~ / downloads와 ~ / Downloads는 서로 다른 두 가지입니다.


2

다음과 같은 디렉토리를 복사 할 때 :

cp dir1 copy_of_dir1

dir1파일 자체가 아닌 자체 파일 만 복사하고 정확하게 복사 하므로 결국 구조가 존재하지 않는 동안 새 디렉토리 구조로 끝납니다.

이 복사 된 후, 즉 내 내용이라고 말할 것이다 file1, file2등; 그러나 이러한 파일은 복사되지 않았으므로 존재하지 않습니다.

따라서 cp기본적으로 발생할 수있는이 문제를 해결하기 위해 -r모든 파일을 재귀 적으로 복사 하는 옵션을 지정하지 않으면 디렉토리를 복사하지 않고 건너 뜁니다 .


1

그것이 말하는 이유는 omitting directory때문입니다 cp및 모든 유틸리티를 복사 내가 파일을 복사를 시작하기 전에 복사 할 파일과 하위 디렉토리의 목록을 작성, 알고 있음. 때 --recursive옵션이없는 하위 디렉토리는이 목록을 마주 얻을. 따라서 생략은 소스 미디어가 아니라 사본 목록에서 제거하는 것을 말합니다. 나는 이것이 메시지의 의미를 다룬다 고 믿는다.


0

CP의 당신은 당신이 추가 할 수 있습니다 중첩 디렉토리를 복사 할 경우 명령, 파일 및 디렉토리가 아닌 중첩 된 디렉토리를 복사하는 데 사용됩니다 -r -r 재귀 의미 곳, 그 후.

수행 할 수있는 구문 (루트로 실행) :

cp -r /source/dir/* /destination/ 

또는

cp --recursive /source/dir/* /destination/

-1

두 개의 디렉토리 'Tag'& 'Test'가 있다고 가정하십시오.

'태그'디렉토리를 '테스트'디렉토리에 복사하려면 명령을 사용하십시오.

$ : cp -r Tag Test (case sensitive)

그렇지 않으면 위의 코드로 대부분 문제가 해결되고 다음과 같은 메시지가 표시됩니다.

cp: omitting directory `Tag' 
cp: omitting directory `Test'

그런 다음 'Tag'디렉토리에 일부 파일을 추가 한 다음 'Test'에 복사하십시오. 실제로 나는 같은 문제가 있지만 두 번째로 말한 것처럼 해결되었습니다.

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