심볼릭 링크가 있다고 가정해 보겠습니다.
linktob -> b
유사한 명령을 실행하면 find . -type l -execdir chmod 777 {} \;
이 chmod
명령은 심볼릭 링크가 가리키는 파일인 "b"에 영향을 미칩니다.
매뉴얼 페이지에는 기본적으로 심볼릭 링크를 따르지 않는다고 명시되어 있지만 여기서는 그렇지 않은 것 같습니다.
-execdir
etc가 -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 시스템 호출은 해당 권한을 변경할 수 없습니다.
심볼릭 링크로 정확히 무엇을 하시겠습니까?