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
を使用する場合) で機能します (速度が向上します)。 、ディレクトリのみを変更したい)。