chown を使用 の再帰オプション:
chown -R owner:group * .[^.]*
* の両方を指定 そして .[^.]* find のすべてのファイルとディレクトリに一致します でしょう。現在推奨されるセパレータは : です . の代わりに . (justins が指摘したように、.* を使用して . を含むように展開できるため、安全ではありません および .. 、結果は chown になります 親ディレクトリとそのすべてのサブディレクトリの所有権を変更します。)
現在のディレクトリの所有権も変更したい場合は、次のように簡略化できます
chown -R owner:group .
chown のようなコマンドの場合 独自の再帰がある場合、そのオプションを使用するのが最速です:
chown -R owner:group * .[^.]*
警告!一部のシェルでは、フォーム chown -R owner:group * .* ルート ディレクトリ / の所有者を置き換えます。 .*だから ../../../../root, ../bin ... etc を意味します .すべてのパス。ただし、最も広く使用されているシェル、bash 、適用されません . と .. 、拡張パターン。
ただし、find の使用を遅くする主な問題を知っておくと役に立ちます。 chmown を呼び出すことです 見つかったすべてのディレクトリとファイルで。使用するのがはるかに高速です:
find . -type f -exec chown <owner>:<group> {} +
find . -type d -exec chown <owner>:<group> {} +
毎回 chown コマンドラインに収まる数のパラメータで呼び出されます。
この変更は、chown のような再帰オプションが組み込まれていない他のコマンドでも機能します。 、 同じように。また、そのような再帰オプションがあり、それを使用できない状況 (たとえば、chmod を使用する場合) で機能します (速度が向上します)。 、ディレクトリのみを変更したい)。