現在、所有者/グループを再帰的に変更する場合は、次のようにします。
find . -type f -exec chown <owner>.<group> {} \;
find . -type d -exec chown <owner>.<group> {} \;
ただし、コマンドごとに数分かかる場合があります。すべてのファイルを一度に1つではなく一度に変更する方法があったと聞きましたが、情報を見つけることができません。それはできますか?
独自の再帰を行う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
を使用していて、ディレクトリを変更したいだけの場合)でも機能します(速度を改善します)。