Что обозначает diff с фигурными скобками?

Что обозначает diff с фигурными скобками?
for i in $(find template -type f | sed 's/^template//') ; do
    diff -wBNu {,./template}$i

Я могу понять цикл for, который обойдет все файлы в templateкаталоге, а затем заменит все предложения, начинающиеся с template, на ''. Правильно ли я понимаю? Что diffздесь делает?

решение1

Скобки выполняют 'расширение скобок' оболочки. Конструкция {,./template}$i создает пару слов, оба из которых содержат значение $i, но последнее имеет ./template в качестве префикса. Попробуйте команду

echo foo{,bar}

в командной строке, чтобы увидеть это в действии. Это описано в разделе "Расширение скобок" в руководстве по bash.

Связанный контент