문제
cp -H
또는로 파일을 복사 cp -L
하면 동일한 결과가 나타납니다.
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
이 답변 은 두 가지 옵션을 모두와 함께 사용되는 유사한 UNLESS로 설명합니다 -R
. 나를 위해 아닙니다. 하드 링크 된 파일은 소스에서 가리키는 파일의 이름이 바뀐 이름이됩니다.
질문 :
cp -H
및 의 올바른 사용법은 무엇입니까 cp -L
? 이것이 예상되는 동작입니까?
내 해결하려는 시도 :
man cp
두 옵션 모두에 대해 똑같이 말하지만 info cp
' 말로 표현 하면 더 혼란 스럽습니다. 어쩌면 하나를 조금 나눌 수 있습니다.
-H
명령 행 인수가 기호 링크를 지정하는 경우 기호 링크 자체 가 아닌 해당 파일이 가리키는 파일 을 복사하십시오 . 그러나 재귀 순회를 통해 발생하는 모든 심볼릭 링크 를 복사 (본질을 유지)합니다 .
이것은 나에게 모순처럼 들린다.» 심볼릭 링크의 본질 «이 어딘가를 가리키는 것 같아…
-L, --dereference
복사 할 때 심볼릭 링크를 따르십시오. 이 옵션을cp
사용하면 심볼릭 링크를 만들 수 없습니다. 예를 들어 소스 트리의 심볼릭 링크 (일반 파일로)는 대상 트리의 일반 파일로 복사됩니다.
심볼릭 링크는 일반적인 파일이 아니라는 것을 알고 있지만…
info cp
의 선택 이 실제로 무엇을 의미 하는지 알아 내기 위해 열심히 노력했습니다 . 이 게시물에 관한 내용입니다. 게시에는 실제 문구도 포함되어 info cp
있으므로 적어도 열어야합니다.…;)
info cp
하고를 검색 하십시오-R
. 그것은 말했다Copy directories recursively.
하지만 당신은 아닌 디렉토리로 테스트하고 있습니다. 차이점은 명령 행 인수가 아니라 복사중인 디렉토리 내부에 있는 내용 입니다.