-Iパラメータ「{}」がデフォルトで選択されているのはなぜですか?

-Iパラメータ「{}」がデフォルトで選択されているのはなぜですか?

-I パラメータに対して "file" などの変数名を渡すことができるように見えますがxargs、 {} を使用する例が非常に多いです。以前のバージョンとの互換性のためですか?それとも、可変位置の可視性に役立ちますか?多くの人が変数名の代わりに{}を使用するのはなぜですか?

答え1

非常にずっと前に、一致するファイル名に置き換える文字列find … -exec …として使用されます。{}この文字列は通常、ファイル名やコマンドラインには表示されないため、選択されているようです。

当時はxargs存在しませんでした。発明された時にも{}使用された。オプションが追加されたとき-i(誰が最初にこれを行ったのかわかりません。期間を考慮すると、おそらくSolarisです)、これは次のことを意味しました。「挿入モード」;交換するデフォルトの文字列を保持します{}

答え2

find -exec私はこれが中かっこ規則を紹介する条項と一致すると思います。

関連情報