{} +
コマンドの意味とexec
の違いを知りたいです。これらの2つの違いは正確に何ですか?{} +
{} \;
find . -type f -exec chmod 775 {} +
find . -type f -exec chmod 775 {} \;
ベストアンサー1
シェルコマンドを終了/呼び出しするには、;
(セミコロン)または(プラス記号)を使用する必要があります。+
-exec
execdir
;
(セミコロン)と(プラス記号)の違いは、引数+
が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
このコマンドのパラメーターと見なされます。この文字列は、
{}
現在処理中のファイル名に置き換えられます。使用
+
できるだけ少ない数のコマンドを実行します。(パラメータは一緒にグループ化されているためです)コマンドと非常によく似ているxargs
ため、各コマンドでできるだけ多くの引数を使用して、1行あたりの引数の最大制限を超えません。例:
$ find /etc/rc* -exec echo Arg: {} '+' Arg: /etc/rc.common /etc/rc.common~previous /etc/rc.local /etc/rc.netboot
コマンドラインは、選択した各ファイル名を最後に追加することで設定されます。
{}
このインスタンスはコマンドに 1 つだけ許可されます。
また見なさい: