findコマンドの-execで2つのbashコマンドを使用する方法は?

findコマンドの-execで2つのbashコマンドを使用する方法は?

コマンドセクションで-exec2つのコマンドを使用できますかfind

私は同様のことを試しました:

find . -name "*" -exec  chgrp -v new_group {}  ; chmod -v 770 {}  \;

私は得る:

find: -exec 引数がありませ
ん chmod: アクセスできません {}: 対応するファイルまたはディレクトリがありません
chmod: アクセスできません;: 対応するファイルまたはディレクトリがありません

ベストアンサー1

コマンドの場合は、さらにコマンドを追加することもfindできます-exec

find . -name "*" -exec chgrp -v new_group '{}' \; -exec chmod -v 770 '{}' \;

このコマンドの結果は、以下を使用するのと同じです。

chgrp -v new_groupファイル&&chmod -v 770ファイル

すべてのファイルに。

findなどのすべてのパラメータ-nameは実際には-exec-sizeテストfindこれまでチェーン全体が評価されている限り、1つずつ実行されます。本物。したがって、各連続-exec命令が実行される。〜しない限り以前の返品本物(つまり、0コマンドの終了状態) しかし、find論理演算子も理解する。または-o)といいえ!)。したがって、一連の-execテストを使用してにもかかわらず前の結果では、次のようなものを使用する必要があります。

find . -name "*" \( -exec chgrp -v new_group {} \; -o -true \) -exec chmod -v 770 {} \; 

おすすめ記事