Для таких команд, как chown
, у которых есть собственная рекурсия, быстрее всего использовать эту опцию:
chown -R owner:group * .[^.]*
Внимание! В некоторых оболочках форма chown -R owner: group *. *
заменяет владельца в корневом каталоге /. Поскольку . *
означает ../../../../ root, ../bin ... и т. Д.
. Все пути. Однако наиболее широко используемая оболочка, bash , не применяется .
и ..
, расширяющиеся шаблоны.
Однако полезно знать, что основная проблема, которая замедляет использование find
, заключается в том, что вы вызываете chmown
для каждого найденного каталога и файла. Гораздо быстрее использовать:
find . -type f -exec chown <owner>:<group> {} +
find . -type d -exec chown <owner>:<group> {} +
, поскольку каждый раз chown
вызывается с таким количеством параметров, которое помещается в командной строке.
Это изменение работает и для других команд, у которых нет встроенной опции рекурсии, например chown
. И он работает (и повышает скорость) в ситуациях, когда есть такая опция рекурсии, но вы не можете ее использовать (например, при использовании chmod
, и вы хотите только изменить каталоги).