-L로 사용법 찾기


34

나는 가지고있다

link -> file

나는한다

find -L . -name 'link'

그리고 얻다

./link

왜 그런 겁니까?

남자 찾기 말한다 :

-L : 기호 링크를 따릅니다. find가 파일에 대한 정보를 검사하거나 인쇄 할 때, 사용 된 정보는 링크 자체가 아닌 링크가 가리키는 파일의 속성에서 가져와야합니다. 링크가 가리키는 지점).

답변:


12

을 사용 하면 링크 -L속성 이 아닌 파일 내용 또는 메타 데이터 의 속성 을 검사합니다 . 예를 들어을 사용 하면 링크가 아닌 파일의 파일을 -atime검사합니다 atime.

$ find testdir/ -name link -newer testdir/ref
testdir/link
$ find -L testdir/ -name link -newer testdir/ref
$

testdir/link이후에 생성 testdir/ref되었지만 해당 파일이 아닙니다.


1
예를 들어 설명해 주시겠습니까? 내가 이해하는 것은 이것입니다. 예에서 find는 검색을 시작합니다. -L은 사실상 그것을 참조하지 않고 ./file의 특성을 취하기 때문에 ./link가 발생합니다. ./file 이름과 패턴 'link'를 비교하며 일치하지 않으므로 o / p를보고하지 않아야합니다. 내 추리에 어떤 문제가 있습니까?
Ankur Agarwal

인용 한 찾기 매뉴얼에서 "사용 된 정보는 링크가 가리키는 파일의 속성에서 가져옵니다." 파일 이름은 그 속성 중 하나가 아니므로 여전히 링크 이름을 사용합니다. 또한 실제 파일 이름보다 훨씬 유용합니다.
케빈

"파일 이름은 그 속성 중 하나가 아닙니다"나는 그것을 몰랐습니다. 속성으로 간주되지 않는 파일의 다른 속성이 있습니까? 솔직히 저는 여전히 회의적이며 다른 사람들의 말을 기다립니다.
Ankur Agarwal

@abc와 동일하지만 파일 이름이 파일 속성이 아니라는 것을 몰랐습니다. 설명서 및 / 또는 매뉴얼 페이지에서이 정보를 어디에서 찾을 수 있습니까? 파일 속성에 대해 더 자세히 배울 수있는 곳을 참조하십시오.
joker

34

일반적인 규칙은 명령이 링크 (즉, inode에 대한 포인터 인 디렉토리 항목)에서 작동하는 경우 링크가 가리키는 객체가 아닌 심볼릭 링크를 자체로 취급한다는 것입니다. 그렇지 않으면 명령은 심볼릭 링크가 가리키는 것에서 작동합니다. 따라서 cp기본적으로 심볼릭 링크를 따르고 링크가 가리키는 파일의 내용을 복사합니다. 그러나을 cp지정하여 디렉토리 항목을 처리 하도록 요청 하면 -R심볼릭 링크를 따르지 않습니다. mv항상 디렉토리 항목과 함께 작동하므로 심볼릭 링크를 따르지 않습니다.

find명령의 정상적인 활동은 디렉토리 항목에서 작동하도록, 그래서 심볼릭 링크는 기본적으로 다음되지 않습니다. 디렉토리 검색을 수행 할 때 무시할 수없는 이름을 제외한 모든 특성에 대해 심볼릭 링크를 추가 -L하면 이름이 추가됩니다. 의 목적 중 하나는 같은 명령에 대한 입력을 제공하는 것입니다 및 디렉토리 항목에서 작동. 에 뿌리를 둔 디렉토리 트리 외부를 가리키는 이름을 생성 할 수 있다면 불쾌하고 놀라운 결과가 나타납니다 .findfind -namemvrmfind -L dir -namedir


와우! 이 미묘한 개념이 맨 페이지에 잘 설명되어 있지 않은 이유는 무엇입니까? 이것은 나에게 큰 놀라움입니다.
Ankur Agarwal

2
@Kyle Jones There would be unpleasant and surprising results if 는 -L dir -name`이 dir을 기반으로하는 디렉토리 트리 외부를 가리키는 이름을 생성 할 수 있음을 발견했습니다 find dir -name pattern. -L을 추가하면 외부 디렉토리를 가리킬 수 있기 때문에
timotheecour

그렇다면 cp -R심볼릭 링크에서 물건을 복사 하는 방법은 무엇입니까?
javadba
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.