O \;
é um ;
alimentado ao programa (find) pelo escape \
, impedindo que ele seja manipulado pelo shell (normalmente, separar comandos). O argumento -exec
interpreta tudo como um comando até aquele ;
inserido que termina o -exec
stuff. Dentro do -exec
stuff, um argumento de {}
significa "insira o nome do arquivo aqui". Portanto, se os arquivos forem "foo" e "bar", ele executará "ls -a foo" e "ls -a bar". Então, todo esse significado significa apenas porque -exec
está lá.
A parte -name *
dela pode ter sido usada com *
entre aspas. Se não estiver entre aspas, fará coisas muito imprevisíveis, porque todos os nomes de arquivo serão inseridos no lugar do *
que você tem, e esses nomes podem fazer coisas ruins para esse comando. Deixe -name *
fora para uma execução mais segura desse comando (mas não sei sua intenção de entender por que isso estava lá).