中括弧付きの diff は何を意味しますか?

中括弧付きの diff は何を意味しますか?
for i in $(find template -type f | sed 's/^template//') ; do
    diff -wBNu {,./template}$i

templateディレクトリ内のすべてのファイルを走査し、 template で始まるすべての文を に置き換えるfor ループは理解できます''。 この理解は正しいでしょうか?diffここで は何をしますか?

答え1

中括弧はシェルの「中括弧展開」を実行します。{,./template}$i という構文は、$i の値を含む単語のペアを生成しますが、後者には ./template が先頭に付加されています。次のコマンドを試してください。

echo foo{,bar}

シェルプロンプトで実行して、動作を確認してください。これは、bash マニュアルの「Brace の展開」に記載されています。

関連情報