답변:
을 사용 하면 링크 -L
의 속성 이 아닌 파일 내용 또는 메타 데이터 의 속성 을 검사합니다 . 예를 들어을 사용 하면 링크가 아닌 파일의 파일을 -atime
검사합니다 atime
.
$ find testdir/ -name link -newer testdir/ref
testdir/link
$ find -L testdir/ -name link -newer testdir/ref
$
testdir/link
이후에 생성 testdir/ref
되었지만 해당 파일이 아닙니다.
일반적인 규칙은 명령이 링크 (즉, inode에 대한 포인터 인 디렉토리 항목)에서 작동하는 경우 링크가 가리키는 객체가 아닌 심볼릭 링크를 자체로 취급한다는 것입니다. 그렇지 않으면 명령은 심볼릭 링크가 가리키는 것에서 작동합니다. 따라서 cp
기본적으로 심볼릭 링크를 따르고 링크가 가리키는 파일의 내용을 복사합니다. 그러나을 cp
지정하여 디렉토리 항목을 처리 하도록 요청 하면 -R
심볼릭 링크를 따르지 않습니다. mv
항상 디렉토리 항목과 함께 작동하므로 심볼릭 링크를 따르지 않습니다.
find
명령의 정상적인 활동은 디렉토리 항목에서 작동하도록, 그래서 심볼릭 링크는 기본적으로 다음되지 않습니다. 디렉토리 검색을 수행 할 때 무시할 수없는 이름을 제외한 모든 특성에 대해 심볼릭 링크를 추가 -L
하면 이름이 추가됩니다. 의 목적 중 하나는 같은 명령에 대한 입력을 제공하는 것입니다 및 디렉토리 항목에서 작동. 에 뿌리를 둔 디렉토리 트리 외부를 가리키는 이름을 생성 할 수 있다면 불쾌하고 놀라운 결과가 나타납니다 .find
find -name
mv
rm
find -L dir -name
dir
There would be unpleasant and surprising results if
는 -L dir -name`이 dir을 기반으로하는 디렉토리 트리 외부를 가리키는 이름을 생성 할 수 있음을 발견했습니다 find dir -name pattern
. -L을 추가하면 외부 디렉토리를 가리킬 수 있기 때문에
cp -R
심볼릭 링크에서 물건을 복사 하는 방법은 무엇입니까?