Qual é a diferença entre as opções -H e -L do chown?

2

Na% man_de% manpage:

The following options modify how a hierarchy is traversed when the -R option is also specified.  If more than one is specified, only the final one takes effect.

-H     if a command line argument is a symbolic link to a directory, traverse it

-L     traverse every symbolic link to a directory encountered

-P     do not traverse any symbolic links (default)

Qual é a diferença exata entre as opções chown e -H ? Pelo que entendi, -L permite a passagem do link simbólico de diretório apenas quando esse diretório é especificado como argumento, em que -H percorre todos os links simbólicos de diretório em qualquer caso. (Essas opções se aplicam somente quando -L ing recursivamente usando a opção chown . No modo não recursivo, um symlink de diretório especificado como argumento é sempre percorrido.) Isso está correto?

    
por dr01 07.09.2016 / 08:41

1 resposta

2

Seu entendimento está correto; essas opções correspondem às mesmas opções em find .

Assim

chown -R .

ou

chown -R -P .

altera o proprietário de forma recursiva sem desmarcar nenhum link simbólico;

chown -R -H *

altera o proprietário recursivamente, des-referenciando quaisquer links simbólicos no diretório atual (já que eles acabam fazendo parte dos argumentos), mas

chown -R -H .

ainda não faz referência a nenhum symlink e, finalmente,

chown -R -L .
chown -R -L *

ambos os links de referência.

(Deixando de lado os exemplos acima, observe que . e * não necessariamente resultam no mesmo resultado, dependendo das opções de globbing do seu shell - * normalmente não corresponde a dotfiles). / p>     

por 07.09.2016 / 09:12