find -execdir이 심볼릭 링크를 따르는 것을 방지하는 방법은 무엇입니까?

find -execdir이 심볼릭 링크를 따르는 것을 방지하는 방법은 무엇입니까?

심볼릭 링크가 있다고 가정해 보겠습니다.

linktob -> b

유사한 명령을 실행하면 find . -type l -execdir chmod 777 {} \;chmod명령은 심볼릭 링크가 가리키는 파일인 "b"에 영향을 미칩니다.

매뉴얼 페이지에는 기본적으로 심볼릭 링크를 따르지 않는다고 명시되어 있지만 여기서는 그렇지 않은 것 같습니다.

-execdiretc가 -exec심볼릭 링크 자체를 처리하도록 하려면 어떻게 해야 합니까 ?

답변1

find이 예에서 다음 명령 을 볼 수 있습니다.하다실제로 심볼릭 링크에서 작동합니다.

$ ls -l *
subdir1:
total 0
-rwxrwxrwx 1 nate nate 0 Jun 13 09:20 realfile

subdir2:
total 0
lrwxrwxrwx 1 nate nate 19 Jun 13 09:20 symlinkfile -> ../subdir1/realfile
$ find . -type l -exec ls "{}" \;
./subdir2/symlinkfile

그러나 기본 명령(예 chmod: )은 그렇지 않을 수도 있습니다. 이 예에서는 chmod가 실제로 변경되는 것을 볼 수 있습니다.표적문서:

$ find . -type l -exec chmod -v 777 "{}" \;
mode of `./subdir2/symlinkfile' retained as 0777 (rwxrwxrwx)
$ find . -type l -exec chmod -v 444 "{}" \;
mode of `./subdir2/symlinkfile' changed from 0777 (rwxrwxrwx) to 0444 (r--r--r--)

$ ls -l *
subdir1:
total 0
-r--r--r-- 1 nate nate 0 Jun 13 09:20 realfile

subdir2:
total 0
lrwxrwxrwx 1 nate nate 19 Jun 13 09:20 symlinkfile -> ../subdir1/realfile

chmod 매뉴얼 페이지에서:

chmod는 심볼릭 링크의 권한을 변경하지 않습니다. chmod 시스템 호출은 해당 권한을 변경할 수 없습니다.

심볼릭 링크로 정확히 무엇을 하시겠습니까?

관련 정보