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 nombre 10, c'est facile et j'utilise simplement 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, quelle est la meilleure façon de supprimer des plages de fichiers comme celle-ci?
J'ai essayé avec bash et zsh, et je ne pense pas qu'ils diffèrent tellement pour une tâche aussi basique?
Réponses:
En bash, vous pouvez utiliser:
ou
pour supprimer FOO13, FOO14 et FOO15.
L'accolade des extensions Bash est documentée ici .
la source
rm FOO{13..15}
.bash
commandes forment un sous-ensemble dez
commandes shell.Pour les futurs lecteurs, la
find
commande peut également supprimer des fichiers. Je me suis installé sur ce problème similaire:mais la réponse choisie est la réponse la plus simple à cette question.
la source
find . -name "*.o" -delete
et cela a fonctionné comme un charme)ls | grep regex | xargs rm
la source
find -regex ... -print0 | xargs -0 ...
pour cela, sinon il échoue pour les noms de fichiers avec des espaces.find
vous pouvez tout aussi bien utiliser-exec
.