Quand je fais
rm file.txt
ou
rm *.txt
Je suis invité pour chaque fichier, car je n'ai pas spécifié le -f
option pour rm
.
Mais quand je fais ça:
find . -type f -name '*.txt' | xargs rm
les fichiers sont supprimés sans confirmation.
Quelle est la logique derrière cela? Est-il possible de trouver la raison dans certains documents? Je ne peux pas expliquer pourquoi ce serait le cas.
Vous avez un alias défini pour la commande rm sur 'rm -i'. Par conséquent, si vous appelez la commande directement comme dans
rm file.txt
ou
rm *.txt
l'alias sera développé. Si vous l'appelez avec xargs comme dans
find . -type f -name '*.txt' | xargs rm
Le rm est passé comme un simple argument de chaîne à xargs et est ensuite invoqué par xargs sans substitution d'alias du Shell. Votre alias est probablement défini dans ~/.bashrc, au cas où vous souhaiteriez le supprimer.