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」に文書化されています。