Disons que j'ai 20 fichiers nommés FOOXX, où XX est le numéro du fichier, par exemple 01, 02, etc.
Pour le moment, si je veux supprimer tous les fichiers inférieurs au numéro 10, c'est simple et j'utilise un caractère générique, par exemple, rm FOO0 *.
Cependant, si je veux supprimer des fichiers spécifiques dans une plage, par exemple 13-15, cela devient plus difficile.
rm FPP [13-15] ne fonctionne pas et me demande si je souhaite supprimer tous les fichiers. Likewse rm FOO1 [3-5] souhaite supprimer tous les fichiers commençant par FOO1
Alors, quel est le meilleur moyen de supprimer des plages de fichiers de ce type?
J'ai essayé avec bash et zsh, et je ne pense pas qu'ils diffèrent autant pour une tâche aussi fondamentale?
En bash, vous pouvez utiliser:
rm FOO1 {3..5}
ou
rm FOO1 {3,4,5}
supprimer FOO13, FOO14 et FOO15.
Les accolades Bash sont documentées ici .
Pour les futurs lecteurs, la commande find
peut également supprimer des fichiers. Je me suis installé pour un problème similaire:
find . -type f -regex '...' -delete
mais la réponse choisie est la réponse la plus simple à cette question.
ls | grep regex | xargs rm