Использование опций для симлинков в coreutils

Из руководства coreutils

2.10 Обход симлинков

Следующие опции изменяют то, как chown и chgrp обходят иерархию если также указана опция --recursive (-R). Если указано более одной из следующих опций, вступает в силу только последняя. Эти опции определяют, будет ли обработка символической ссылки на каталог влечет за собой обработку только символической ссылки или всех файлов в иерархии, корнем которой является этот каталог.

Эти опции не зависят от --dereference и --no-dereference (-h), которые определяют, следует ли изменять симлинк или его референт.

-H Если указано --recursive (-R) и аргументом командной строки является символическая ссылка на каталог, перейдите по ней.

-L При рекурсивном обходе обходить каждую символьную ссылку на каталог, которая встречается. которая встречается.

-P Не обходить символические ссылки. Это значение по умолчанию, если ни один из из -H, -L или -P.

  1. В разделе "Эти опции не зависят от --dereference и --no-dereference (-h), которые управляют изменением симлинка или его референта", что делают "эти опции" и "--dereference и --no-dereference" соответственно, и чем они отличаются?

  2. Описания для -H и для -L, как мне кажется, говорят об одном и том же. Чем отличаются эти два варианта?

Спасибо.

-2
03.07.2016, 14:41
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.

1
28.01.2020, 05:17

Теги

Похожие вопросы