中かっこを使った違いはどういう意味ですか?

中かっこを使った違いはどういう意味ですか?
for i in $(find template -type f | sed 's/^template//') ; do
    diff -wBNu {,./template}$i

ディレクトリ内のすべてのファイルを繰り返し、templateテンプレートで始まるすべての文をに置き換えるforループを理解できます''。ここで何をしているのdiff

答え1

中かっこはシェルの「分岐拡張」を実行します。 {,./template}$i 構成は $i 値を含む単語のペアを生成しますが、後者の前には ./template が続きます。コマンドを試す

echo foo{,bar}

シェルプロンプトで実際に動作する様子を確認してください。これはbashマニュアルの「Brace Expansion」に文書化されています。

関連情報