coreutils 매뉴얼에서
2.10 심볼릭 링크 탐색
--recursive
다음 옵션은 () 옵션도 지정된 경우 chown 및 chgrp가 계층 구조를 탐색하는 방법을 수정합니다.-R
다음 옵션 중 여러 개를 지정하면 마지막 옵션만 적용됩니다. 이러한 옵션은 디렉토리에 대한 기호 링크를 처리할 때 기호 링크만 작동해야 하는지 아니면 해당 디렉토리에 루트가 있는 계층 구조의 모든 파일을 작동해야 하는지 여부를 지정합니다.
--dereference
이러한 옵션은 및--no-dereference
( ) 와 독립적-h
이며 기호 링크 또는 해당 참조가 수정되는지 여부를 제어합니다.
-H
--recursive
( )가 지정되고 명령줄 인수가 디렉터리에 대한 기호 링크인 경우 해당 디렉터리를 탐색합니다.-R
-L
재귀 순회에서는 발견된 디렉터리의 각 기호 링크가 순회됩니다.
-P
기호 링크를 통과하지 마십시오.-H
,-L
또는가 지정되지 않은 경우 이것이 기본값입니다-P
.
--dereference
"이 옵션은 및--no-dereference
( ) 와 독립적-h
이며 기호 링크 또는 해당 참조가 수정되는지 여부를 제어합니다"에서 "이 옵션"과 "--dereference
및--no-dereference
"는 각각 무엇을 수행하며 어떻게 다릅니까?-H
옳음과 옳음에 대한 설명은-L
나에게 같은 말을 하는 것 같습니다. 이 두 가지 옵션의 차이점은 무엇입니까?
감사해요.
답변1
로고 -h
(일명 --no-dereference
)는 사용하기 좋은 로고입니다. 다음과 같은 설정이 있다고 가정해 보겠습니다.
$ ln -s /etc/passwd /tmp/foobar
$ sudo chown fred /tmp/foobar
--dereference
기본값과 마찬가지로 이는 실제로 변경됩니다 /etc/passwd
. 아마도 원하는 것이 아닐 수도 있습니다. :-) 이 -h
플래그를 사용하면 심볼릭 링크 소유권이 변경됩니다. 따라서 특히 소유권을 재귀적으로 변경할 때 이를 사용하는 습관을 들여야 합니다 -h
. 즉, chmod -hR
대신 하십시오 chmod -R
.
이 -H
플래그는 명령줄에 나열한 디렉터리 심볼릭 링크에만 적용됩니다. 이 -L
옵션은 재귀 중에 하위 디렉터리의 심볼릭 링크를 포함하여 발견된 모든 디렉터리 심볼릭 링크에 적용됩니다 chown
.