N'oubliez pas de regarder des programmes tels que trash-cli pour pouvoir annuler la suppression au lieu d'utiliser rm. code.google.com/p/trash-cli (Vous voudriez simplement remplacer "rm" par "trash" dans toutes les réponses ci-dessous.)
Réponses:
137
Supprimez tous les fichiers * .swp situés sous le répertoire en cours, utilisez la findcommande sous l’une des formes suivantes:
find . -name \*.swp -type f -delete
L' -deleteoption signifie find supprimera directement les fichiers correspondants. C'est la meilleure correspondance avec la question réelle de OP.
Utiliser -type fmoyens find ne traitera que les fichiers.
L'option -execpermet à 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 {}par autant de paramètres que possible.
Le piping vers la sortie xargsest utilisé pour former des commandes par fichier plus complexes qu’il n’est possible avec -exec. L'option -print0indique findde séparer matchs avec NULL ASCII au lieu d'un saut de ligne, et -0dit xargsd'attendre l' entrée séparée NULL. Cela rend la construction de tuyau sûre pour les noms de fichiers contenant des espaces.
Après avoir trouvé find, supprimez lui-même tous les risques liés à l'espace incorporé dans le nom du fichier, ... Pour plus de sécurité, envisagez également l'ajout -type fpour les fichiers uniquement.
Pour chercher dans mon répertoire personnel (et utiliser GNU 'find' et 'xargs'), j'utilisais:
find $HOME -name '*.swp' -print0 | xargs -0 rm -f
L'utilisation de ' -print0' et ' -0' signifie que les noms seront délimités par des caractères ASCII NUL '\ 0', ce qui gérera les chemins de fichiers avec des blancs, etc., dans les noms. Si vous pensez que votre répertoire contient des répertoires (ou des fichiers de périphérique, des fichiers FIFO ou autres) se terminant par «.swp», vous pouvez ajouter l' -type foption « » à «rechercher». Si vous ne disposez que de répertoires, la commande ci-dessus ne parvient pas à les supprimer bruyamment.
Réponses:
Supprimez tous les fichiers * .swp situés sous le répertoire en cours, utilisez la
find
commande sous l’une des formes suivantes:find . -name \*.swp -type f -delete
L'
-delete
option signifie find supprimera directement les fichiers correspondants. C'est la meilleure correspondance avec la question réelle de OP.Utiliser
-type f
moyens find ne traitera que les fichiers.find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
L'option
-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{}
par autant de paramètres que possible.find . -name \*.swp -type f -print0 | xargs -0 rm -f
Le piping vers la sortie
xargs
est utilisé pour former des commandes par fichier plus complexes qu’il n’est possible avec-exec
. L'option-print0
indiquefind
de séparer matchs avec NULL ASCII au lieu d'un saut de ligne, et-0
ditxargs
d'attendre l' entrée séparée NULL. Cela rend la construction de tuyau sûre pour les noms de fichiers contenant des espaces.Voir
man find
pour plus de détails et exemples.la source
find . -name '*.swp' -delete
Après avoir trouvé find, supprimez lui-même tous les risques liés à l'espace incorporé dans le nom du fichier, ... Pour plus de sécurité, envisagez également l'ajout
-type f
pour les fichiers uniquement.la source
bash 4.0
la source
Pour chercher dans mon répertoire personnel (et utiliser GNU 'find' et 'xargs'), j'utilisais:
L'utilisation de '
-print0
' et '-0
' signifie que les noms seront délimités par des caractères ASCII NUL '\ 0', ce qui gérera les chemins de fichiers avec des blancs, etc., dans les noms. Si vous pensez que votre répertoire contient des répertoires (ou des fichiers de périphérique, des fichiers FIFO ou autres) se terminant par «.swp», vous pouvez ajouter l'-type f
option « » à «rechercher». Si vous ne disposez que de répertoires, la commande ci-dessus ne parvient pas à les supprimer bruyamment.la source