ファイルの権限とグループ所有者を同時に変更する方法

ファイルの権限とグループ所有者を同時に変更する方法

ファイル権限を変更するにはchmodを使用できることを知っています。グループ所有者を変更するには、chgrpを使用できます。しかし、権限と所有者を同時に変更したい場合は、Linuxで使用できるコマンドはありますか?

たとえば、次の権限と所有者を持つファイルがあります。

-rw-r--r--+  1 raymondtau  staff    0 May  8 16:38 WantToChangeThisFile

今、私は次のように変更したいと思います。

---x-w--wx+  1 raymondtau  admin    0 May  8 16:38 WantToChangeThisFile

私はこのコマンドを使用できることを知っていますが、chmod 123 WantToChangeThisFile && chgrp admin WantToChangeThisFileこれを行うための賢い方法があるかどうか疑問に思います。

答え1

ファイルをどこか(最後のターゲットなど)にコピーしたい場合は、以下を見てください。install注文する:

install -m 0777 -o root $sourcefile $destinationfile

答え2

「UNIX-way」という概念があります。各ツールは簡単な機能を実行する必要があります。より複雑な機能が必要な場合は、より小さなツールを組み合わせることができます。

その逆は、すべての機能が1つの巨大なツールに統合されるモノリシックデザインです。

複雑な作業を行うには、簡単なツールを呼び出すスクリプトを作成してください。

答え3

* nixで作業に適したツールを使用することは重要ですが、実際にすべてのリンクコマンドで同じパスを繰り返すことは愚かなようです。代わりにBash変数を使用する必要があります。特に$_

あなたのコマンドは次のとおりです

chmod 123 WantToChangeThisFile && chgrp admin $_

ALT +は同様の操作を実行して、現在のシェルで最後に使用された引数を抽出します。

答え4

Rsync は次のような状況で役立ちます。

美しい手帳(TM)から抜粋

--chown=USER:GROUP 単純ユーザー名/グループ名マッピング

--chmod=CHMOD はファイルおよび/またはディレクトリ権限に影響します。

たとえば、chmod /mnt/lala/lala4000/ "ugo=rX" と chown "foo.bar" が必要です。

rsync --chmod=ugo=rX --chown=foo:bar -rvtpolgh /mnt/lala/lala4000/ /mnt/lala/lala4000/

これにより、ディレクトリは再帰的にchownとchmodになります。

関連情報