Parfois, je vois la commande suivante:
find . -name * -exec ls -a {} \;
On m'a demandé d'exécuter ceci.
Que {} \;signifie ici?
-name *est pire que redondant. Parce que le *n'est pas entre guillemets, le shell le développe pour former la liste des noms de fichiers du dossier en cours, les espaces étant traités de manière incorrecte, ce qui entraîne des résultats inattendus ou un message d'erreur. Un point supplémentaire finda de nombreuses fonctions, l’une d’eux étant de lister les fichiers; cela évite d'avoir à utiliser -exec. Par exemple, vous pouvez utiliser find . -printou find . -ls. Enfin, il y a deux façons d'échapper à la demi-virgule: soit comme vous avez fait avec la barre oblique inverse, \;ou en citant: ';'. Utilisez celui avec lequel vous vous sentez le plus à l'aise.

-name *est redondant.