Às vezes, vejo o seguinte comando:
find . -name * -exec ls -a {} \;
Me pediram para executar isso.
O que {} \;
significa aqui?
-name *
é pior que redundante. Como *
não está entre aspas, o shell o expande para a lista de nomes de arquivos na pasta atual, com espaços sendo tratados incorretamente, levando a resultados inesperados ou a uma mensagem de erro. Como ponto extra, find
possui muitas funções, uma delas para listar arquivos; isso evita ter que usar -exec
. Por exemplo, você pode usar find . -print
ou find . -ls
. Finalmente, há duas maneiras de escapar do ponto e vírgula: ou como você fez com a barra invertida, \;
ou por citar: ';'
. Use o que você se sentir mais confortável.
-name *
é redundante.