4 votes

Suppression de fichiers dans un répertoire basé sur un nom partiel

Je voulais savoir quel est le meilleur moyen de supprimer tous les fichiers, quelle que soit leur extension, à partir d'un nom partiel.

Beispiel:

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.

4voto

Radu Rădeanu Points 156862

Le moyen le plus 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 en train d'être fait, utilisez rm con -v option. Pour être invité à le faire avant chaque suppression, utilisez rm con -i option :

rm -vi *_foo_*

Voir man rm pour plus d'informations.

1voto

evilsoup Points 4265

Si vous voulez le faire dans tous les sous-répertoires également, le plus simple est d'activer l'option globstar Shell :

shopt -s globstar
rm **/*foo_*

Il devrait y avoir un commentaire (c'est-à-dire commençant par un # ) dans la ligne par défaut ~/.bashrc (ligne 29 dans le mien) :

# shopt -s globstar extglob

Il suffit de décommenter cette ligne et vous aurez accès à quelques fonctionnalités bash améliorées .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X