Ejemplos
Recientemente he encontrado ejemplos del uso de pares de llaves {}, sin nada entre las llaves de apertura y cierre, como argumentos para los comandos e incluso para sus opciones:
cat foo | xargs -I{} echo {}
find . -size 0 -exec rm -i {} \;
Sin documentación
Mi problema es que no puedo encontrar una documentación en el Manual de GNU Bash que describa el uso {}en el contexto de los ejemplos anteriores.
No creo que sea una expansión de parámetros , porque un signo de dólar debe preceder a las llaves en una expansión de parámetros como en ${}.
Tampoco puede ser una expansión de llaves, porque toma la forma de {x..y[..incr]}, donde xy yno son opcionales.
Tampoco puede ser una agrupación de comandos , porque {}se usa como argumentos.
Preguntas
¿Qué
{}significa incluso un par de llaves encerradas , en general, como argumento para cualquier comando que lo acepte?¿Dónde puedo encontrar una documentación que describa el uso de
{}como argumentos?

{}, lotargetsque significa actuar, con elfindcomando, es eliminar /rmencontrar archivos.Respuestas:
Estas llaves se dejan solas por bash; pertenecen
findyxargs, respectivamente, y se describen en sus páginas de manual.man findman xargsEditar: y aquí POR QUÉ bash ignora esas llaves:
man bashPara enfatizar: la lista debe terminarse con una nueva línea o punto y coma .
fuente
man xargsni siquiera se molestó en explicar lo que{}realmente significa, ni el autor redirigió (sin juego de palabras) al lector a la explicación-execen la página de manual defind.xargs -Iab echo ab; Es una elección puramente arbitraria.-I, ahora entiendo qué hace realmente esa opción. Sí,{}es arbitrario, como dijiste. Estaba confundido por la explicaciónIf the replace-str argument is missing, the effect is the same as -I{}. Si-Isin argumento fuera el mismo que-I{},cat foo | xargs -I echo {}produciría el mismo resultado que ejecutarcat foo | xargs -I{} echo {}. Sin embargo, no son lo mismo. El primero es un error, y lo que me confundió aún más fue el mensaje de errorxargs: {}: No such file or directory, pero eso se debe solo a la implementación.-I(mayúscula I) no se puede ejecutar sin un argumento. El argumento para-Ifueecho. Esta es la principal diferencia entre-Iy-i(y la razón -i está en desuso, ya que las opciones con argumentos no obligatorios son poco comunes y confusas)