cp -r과 cp -a의 차이점


174

나는 사이의 차이를 찾고 있어요 cp -rcp -a. 폴더에서 파일을 복사한다는 점에서 "재귀 적"이란 무엇입니까?


62
어떤 사람들은 설명이 무엇을 의미하는지 항상 명확하지 않기 때문에 매뉴얼 페이지에 대한 더 나은 설명을 찾고 있습니다. 나는 특정 명령으로 실제로 무슨 일이 일어나고 있는지 알아 내기 위해 여러 번 파고 테스트 / 실험해야했습니다. grep의 맨 페이지는 어느 날 혼란스럽게 할 수 있습니다.
Joe

2
나는 당신의 좌절감을 이해할 수 있지만, 가장 배우는 가장 좋은 방법은 테스트하고 실험하는 것입니다.
Tripledes

37
또는 여기에서 질문하고 이해하는 방식으로 답변을 얻은 다음 테스트 및 실험 방법과 방법을 더 잘 이해합니다. 당신을 위해 일하는 것은 저를 위해 자주 작동하지 않는다는 것을 명심하십시오.
Will Lanni

답변:


198

재귀 cp는 디렉토리의 내용 을 복사하는 것을 의미하며 , 디렉토리에 서브 디렉토리가있는 경우에도 (재귀 적으로) 복사됩니다. 하지 않고 -Rcp명령은 디렉토리를 건너 뜁니다. Linux -r와 동일하지만 -R일부 유닉스 경우 다른 유닉스 변형과 다릅니다.

기본적으로 cp이전 파일과 내용이 같고 권한은 있지만 umask에 의해 제한되는 새 파일을 작성합니다 . 사본은 사본 시점부터 날짜가 있으며 사본을 수행하는 사용자에게 속합니다. 이 -p옵션을 사용하면 사본의 수정 시간, 액세스 시간 및 원본과 동일한 권한을 갖습니다. 또한 사본을 수행하는 사용자가 그러한 파일을 작성할 권한이있는 경우 원본과 동일한 소유자 및 그룹을 갖습니다.

-a옵션은 -R-p몇 가지 다른 보존 옵션을 의미합니다. 동일한 디렉토리 트리, 동일한 파일 형식, 동일한 내용, 동일한 메타 데이터 (시간, 권한, 확장 된 속성 등)와 최대한 원본에 가까운 사본을 만들려고 시도합니다.


35
기본적으로 특별한 것을 원하지 않으면 (보관을 위해 ) 항상 안전하고 예상했던 일 -r이기 때문에 필요하지 않습니다 . -aa
AMS

2
@ams 네, 좋은 요약입니다. 사용하는 유일한 일반적인 이유 -r는 Linux 이외의 유닉스 변형을 사용하지 않기 때문에 -a일반적으로 사용하기 때문 cp -rp입니다. 또는 rsync -a.
Gilles

때때로 권한은 -r을 허용하지만 -a는 허용하지 않습니다.
DrCord

-r 아님 -R 아님 우분투 18에서 작동하지 않음
Arkady

16

"재귀 적"에 대한 -r 또는 -R 옵션은 하위 폴더 내의 파일을 포함하여 모든 파일을 복사한다는 것을 의미합니다.

나열된 -a 옵션은 -dR과 동일하므로 링크를 유지하고 서브 디렉토리의 내용을 복사합니다. 링크를 유지한다는 것은 재귀 적으로 복사 할 때 링크를 따르지 않는다는 의미입니다.

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