web-dev-qa-db-ja.com

現在のフォルダーの所有者とグループを持つサブフォルダーをchownします

Bashスクリプトでは、任意のフォルダーのすべてのサブフォルダーを、その特定のフォルダーのユーザーおよびグループ所有者と再帰的にchownします。

私のアプローチは、stat -c "%U %G" .を使用するようなものです

しかし、それはusername[whitespace]groupnameのパターンのみを返します

もちろん、空白を:に置き換えるためのさまざまなツールを試すこともできますが、サブフォルダーに現在の所有権を適用するために、「組み込み」の方法がある場合はそれを使用することをお勧めします。

8
Jankapunkt

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
6
muru

実際に空白を削除するために出力を解析する必要はありません-それをコマンドに追加しました!最初に好きなようにフォーマットすることができます(chownのコロン構文を使用):

$ stat -c "%U:%G" .
zanna:unicorns

したがって、それをコマンド置換でchownに渡すだけです。

chown -R $(stat -c "%U:%G" .) .
8
Zanna