¿Qué denota la diferencia con llaves?

¿Qué denota la diferencia con llaves?
for i in $(find template -type f | sed 's/^template//') ; do
    diff -wBNu {,./template}$i

Puedo entender el bucle for que recorrerá todos los archivos en el templatedirectorio y luego reemplazará todas las oraciones que comienzan con la plantilla con ''. ¿Es correcto este entendimiento? ¿Qué hace diffaquí?

Respuesta1

Los tirantes realizan una "expansión de tirantes" de la carcasa. La construcción {,./template}$i produce un par de palabras, ambas contienen el valor de $i, pero la última tiene ./template antepuesto. Prueba el comando

echo foo{,bar}

en el símbolo del shell para verlo en acción. Esto está documentado en "Expansión de llaves" en el manual de bash.

información relacionada