exec
divの{} +
の意味を知りたい>コマンド、および{} +
と{} \;
の違いは何ですか。正確には、これら2つの違いは何ですか。
find . -type f -exec chmod 775 {} + find . -type f -exec chmod 775 {} \;
コメント
回答
;
(セミコロン)または+
(プラス記号)の使用は、
/ execdir
。
;
(セミコロン)と<の違いdiv id = "17278a0c14">
(プラス記号)は、引数がfindに渡される方法です。-exec
/ -execdir
パラメータ。例:
-
;
を使用すると、複数のコマンドが実行されます(引数ごとに個別)、例:
$ find /etc/rc* -exec echo Arg: {} ";" Arg: /etc/rc.common Arg: /etc/rc.common~previous Arg: /etc/rc.local Arg: /etc/rc.netboot
find
に続くすべての引数は、コマンドの引数と見なされます。文字列
{}
は現在のファイルnamに置き換えられますeが処理されています。 -
は可能な限り少ないコマンドを実行します(引数が一緒に結合されるため)。これは、
xargs
コマンドの動作と非常によく似ているため、1行あたりの引数の上限を超えないように、コマンドごとにできるだけ多くの引数を使用します。例:
$ find /etc/rc* -exec echo Arg: {} "+" Arg: /etc/rc.common /etc/rc.common~previous /etc/rc.local /etc/rc.netboot
コマンドラインは、選択した各ファイル名を最後に追加することで作成されます。
{}
のインスタンスは1つだけコマンド内で許可されます。
関連項目:
-
man find
- SOでの検索でexecを使用してセミコロン(;)とプラス(+)を使用する
- 単純なunixコマンド、SOでの{}と\; for は何ですか
コメント
- 違いと大きな違いがあります。 user1116056 ' s の回答をご覧ください li>
man find(1)
で詳細に説明されており、誰でも簡単に見つけることができます。 '怠惰にならないでください。man exec
で検索しました!{} +
の使用法に出くわしたことがありませんでした。私は通常、そのためにxargsを使用します(多くの場合、find ... -print0 | xargs -0 ...
)