Je souhaite rechercher plusieurs fichiers en utilisant find
et les supprimer tous en utilisant -exec
. Jai essayé
find ./ -type f -name fileA -o -name fileB -exec rm {} \;
mais cela semble supprimer les fichiers « fileB » seulement pas fileAs.
Commentaires
Réponse
-o
sapplique également à laction, vous devez donc regrouper les choses:
find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \;
BTW, votre find
La mise en œuvre peut également prendre en charge les -delete
:
find ./ -type f \( -name fileA -o -name fileB \) -delete
Commentaires
- et si cela ne ' t, il prend probablement en charge
-exec rm {} +
Réponse
Autre alternative:
WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted. find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f
Ou si possible pour les attraper fichiers avec des personnages amusants:
NOTE: On some systems -print0 and -0 options are not available. But this would be the preferred and safer method) find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f
Commentaires
- Jaime la façon dont vous êtes revenu près dun an plus tard juste pour ajouter la note sur les noms de fichiers, cette dédicace de '. : D
rm
(il ' essaiera mais échouera ).