Supprimez tous les fichiers *.swp sous le répertoire actuel, utilisez le find
commande sous l'une des formes suivantes :
-
find . -name \*.swp -type f -delete
Le-delete
signifie que find supprimera directement les fichiers correspondants. C'est la meilleure correspondance avec la question réelle d'OP.
Utilisation de-type f
signifie que find ne traitera que les fichiers.
-
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
Choix-exec
permet à find d'exécuter une commande arbitraire par fichier. La première variante exécutera la commande une fois par fichier, et la seconde exécutera le moins de commandes possible en remplaçant{}
avec le plus de paramètres possible.
-
find . -name \*.swp -type f -print0 | xargs -0 rm -f
Diriger la sortie versxargs
est utilisé sous forme de commandes par fichier plus complexes que ce qui est possible avec-exec
. L'option-print0
indiquefind
pour séparer les correspondances avec ASCII NULL au lieu d'une nouvelle ligne, et-0
indiquexargs
s'attendre à une entrée séparée par NULL. Cela rend la construction de tube sûre pour les noms de fichiers contenant des espaces.
Voir man find
pour plus de détails et d'exemples.
find . -name '*.swp' -delete
Après avoir trouvé la suppression elle-même, supprimez tout risque d'espace intégré dans le nom de fichier, ... Pour plus de sécurité, envisagez également d'ajouter -type f
pour les fichiers uniquement.
find /path -type f -name "*.swp" -delete
find /path -type f -name "*.swp" -exec rm -f "{}" +;
bash 4.0
shopt -s globstar
rm -f /path/**/*.swp