从coreutils手册
2.10遍历符号链接
当还指定
--recursive
(-R
)选项时,以下选项可修改chown和chgrp如何遍历层次结构。如果指定了多个以下选项之一,则仅最后一个选项生效。这些选项指定处理到目录的符号链接是否只需要对符号链接或根于该目录的层次结构中的所有文件进行操作。这些选项独立于
--dereference
和--no-dereference
(-h
),后者控制是否修改符号链接或其引用。
-H
如果指定了--recursive
(-R
),并且命令行参数是指向目录的符号链接,请遍历该目录。
-L
在递归遍历中,遍历每个符号链接到遇到的目录。
-P
不要遍历任何符号链接。这是默认的,如果没有的-H
,-L
或-P
指定。
在“这些选项独立于--dereference
and --no-dereference
(-h
),它们控制是否修改符号链接或其引用”中,“这些选项”和“--dereference
与--no-dereference
”分别做什么,它们有何不同?
为描述-H
和-L
似乎在说同样的东西给我。这两个选项有何不同?
谢谢。
该-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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句