Je voulais savoir quel est le meilleur moyen de supprimer des fichiers, quelle que soit leur extension, basée sur un nom partiel.
Exemple:
13-05-12_foo_something.jpg
13-06-01_something.png
13-05-05_foo_site.html
rm tout dans un répertoire et dans les sous-dossiers avec _foo_
dans le nom.
La manière simple:
cd /path/to/directory
rm *_foo_*
ou
rm /path/to/directory/*_foo_*
L'astérisque (*
) correspond à tous les caractères.
Pour obtenir des explications sur ce qui est fait, utilisez rm
avec l'option -v
. Pour être invité avant chaque suppression, utilisez rm
avec l'option -i
:
rm -vi *_foo_*
Voir man rm
pour plus d'informations.
Si vous souhaitez également le faire dans tous les sous-répertoires, le moyen le plus simple consiste à activer l'option globstar Shell:
_shopt -s globstar
rm **/*foo_*
_
Il devrait y avoir une ligne commentée (c'est-à-dire commençant par une ligne _#
_) dans la valeur par défaut _~/.bashrc
_ (ligne 29 dans la mienne):
_# shopt -s globstar extglob
_
Décommentez simplement cette ligne et vous aurez accès à quelques fonctionnalités améliorées de bash .