
for i in $(find template -type f | sed 's/^template//') ; do
diff -wBNu {,./template}$i
Eu posso entender o loop for que percorrerá todos os arquivos no template
diretório e, em seguida, substituirá todas as frases começando com template por ''
. Esse entendimento está correto? O que isso diff
faz aqui?
Responder1
As chaves executam a 'expansão das chaves' do shell. A construção {,./template}$i produz um par de palavras, ambas contendo o valor de $i, mas a última tem ./template prefixado. Experimente o comando
echo foo{,bar}
no prompt do shell para vê-lo em ação. Isso está documentado em "Expansão de chaves" no manual do bash.