Bashスクリプトでは、任意のフォルダーのすべてのサブフォルダーを、その特定のフォルダーのユーザーおよびグループ所有者と再帰的にchownします。
私のアプローチは、stat -c "%U %G" .
を使用するようなものです
しかし、それはusername[whitespace]groupname
のパターンのみを返します
もちろん、空白を:
に置き換えるためのさまざまなツールを試すこともできますが、サブフォルダーに現在の所有権を適用するために、「組み込み」の方法がある場合はそれを使用することをお勧めします。
chown
は、chmod
と同様に、参照を使用できます。
chown [OPTION]... --reference=RFILE FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP. With
--reference, change the owner and group of each FILE to those of RFILE.
そう:
chown --reference=/some/folder -R /some/folder
実際に空白を削除するために出力を解析する必要はありません-それをコマンドに追加しました!最初に好きなようにフォーマットすることができます(chown
のコロン構文を使用):
$ stat -c "%U:%G" .
zanna:unicorns
したがって、それをコマンド置換でchown
に渡すだけです。
chown -R $(stat -c "%U:%G" .) .