
ファイル権限を変更するには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になります。