Hai un alias impostato per il comando rm su 'rm -i'. Pertanto, se invochi il comando direttamente come in
rm file.txt
o
rm *.txt
l'alias verrà espanso. Se lo chiamerai con xargs come in
find . -type f -name '*.txt' | xargs rm
rm viene passato come un semplice argomento di stringa a xargs e viene successivamente richiamato da xargs senza sostituzione dell'alias della shell. L'alias è probabilmente definito in ~/.bashrc, nel caso tu voglia rimuoverlo.
puoi usare questo semplice comando per risolvere il tuo problema
find . -type f -name '*.txt' -delete
A seconda della tua versione di xargs potresti avere a disposizione l'opzione di estensione GNU --no-run-if-empty:
find . -type f -name '*.txt' | xargs --no-run-if-empty rm -rf