現在の所有者/グループを再帰的に変更するには、次の手順を実行します。
find . -type f -exec chown <owner>.<group> {} \;
find . -type d -exec chown <owner>.<group> {} \;
ただし、各コマンドには数分かかることがあります。一度に1つのファイルを変更するのではなく、すべてのファイルを一度に(より速く)変更する方法があると聞きましたが、情報が見つからないようです。私はできますか?
答え1
使用されたchown
再帰オプション:
chown -R owner:group * .[^.]*
両方を指定すると、すべてのファイルとディレクトリと一致*
します。今推奨される区切り記号はです。.[^.]*
find
:
.
ジャスティンを使用すると、およびを.*
含むように拡張され、親ディレクトリとすべての子ディレクトリの所有権が変更される可能性があるため、安全ではありません。 ).
..
chown
現在のディレクトリの所有権も変更したい場合は、次のように単純化できます。
chown -R owner:group .
答え2
chown
独自の再帰を持つこのようなコマンドでは、このオプションを使用するのが最速です。
chown -R owner:group * .[^.]*
警告する!一部のシェルでは、この型はchown -R owner:group * .*
ルートディレクトリ/の所有者を置き換えます。なぜなら、.*
すべての../../../../root, ../bin ... etc
パス。しかし、最も広く使用されているシェルは強く打つ、該当せず、.
拡張..
モード。
ただし、使用率を低下させる主な問題は、見つかったすべてのディレクトリとファイルへの呼び出しであることを理解するのに役立ちfind
ます。chmown
使用する方がはるかに高速です。
find . -type f -exec chown <owner>:<group> {} +
find . -type d -exec chown <owner>:<group> {} +
すべての呼び出しは、chown
コマンドラインに収まるほどの引数を使用して行われます。
chown
この変更は、組み込みの再帰オプションを持たない他のコマンド(例)にも適用されます。再帰オプションがあるが使用できない場合(たとえば、を使用してディレクトリのみを変更したい場合)は、機能しchmod
速度を上げることができます。