A veces veo el siguiente comando:
find . -name * -exec ls -a {} \;
Me pidieron que ejecutara esto.
¿Qué {} \;
significa aquí?
-name *
Es peor que redundante. Debido a *
que no está entre comillas, el shell lo expande a la lista de nombres de archivo en la carpeta actual, con espacios que se tratan incorrectamente, lo que genera resultados inesperados o un mensaje de error. Como punto extra, find
tiene muchas funciones, una de ellas es listar archivos; Esto evita tener que usar -exec
. Por ejemplo, puedes usar find . -print
o find . -ls
. Por último, hay dos maneras de escapar del punto y coma: o bien como lo hizo con la barra invertida, \;
o por citar: ';'
. Use el que le resulte más cómodo.
-name *
es redundante