Pour une machine telle que votre macbook, vous ne trouverez pas beaucoup de différence de performances entre les deux commandes. Cependant, si vous regardez la version -exec, vous pouvez voir une différence subtile:
sudo find / -iname ".file-to-delete" -exec rm {} \;
Cela signifie que vous trouverez tous ces fichiers avec le nom ".file-to-delete". Cependant, cette recherche peut renvoyer des faux positifs indésirables. Lorsque vous faites quelque chose avec sudo, vous devriez être un peu plus prudent. L'avantage d'utiliser -exec rm {} est que vous pouvez passer des arguments à rm comme ceci:
sudo find / -iname "*~" -exec rm -i {} \;
Dans cet exemple, je souhaite supprimer les fichiers de sauvegarde créés par emacs. Cependant, ce tilde pourrait se trouver dans un fichier obscur que je ne connais pas et qui pourrait être important. De plus, je veux confirmer la suppression. J'ai donc mis l'option '-i' sur la commande rm. Cela me donnera une suppression interactive.
Vous pouvez aussi affiner l'utilisation de rm pour supprimer des répertoires ainsi que des fichiers:
find /usr/local/share/ -iname "useless" -exec rm -r {} \;
En bref, l'option -exec vous donne un peu plus de contrôle sur la commande qui supprime l'élément trouvé. L'avantage est que vous utilisez un outil pour trouver les fichiers, un autre outil pour les supprimer. De plus, toutes les versions de l'utilitaire de recherche ne possèdent pas l'option -delete. Mieux vaut donc utiliser chaque outil pour son propre travail. C’est la philosophie Unix: un outil, un travail, utilisez-les ensemble pour faire ce que vous devez faire.
-delete
commutateur avant-name
supprime l'arborescence de fichiers spécifiée, donc je suppose que je dois faire attention.