43 votes

Supprimer tous les fichiers dont les noms de fichier contiennent une certaine chaîne de caractères ?

J'ai changé mon thème wordpress. L'ancien en créait tellement d'images sur le serveur. Mon nouveau thème n'en a pas besoin, donc je veux les supprimer. Comment puis-je faire ça?

Par exemple:
Image par défaut: 12_angry_men_lone_holdout.jpg

Je veux supprimer:

12_angry_men_lone_holdout-290x166.jpg
12_angry_men_lone_holdout-700x300.jpg 
12_angry_men_lone_holdout-50x50.jpg

En utilisant Digitalocean, Ubuntu 13.10.

47voto

John Manak Points 2923

Si elles sont dans le même dossier, utilisez le joker * pour y parvenir :

rm *text*

text est une chaîne de caractères présente dans le nom du fichier.

46voto

Dr.DK Points 15

Utilisez find pour rechercher de manière récursive et supprimer les fichiers contenant "text" dans leur nom :

find -type f -name '*text*' -delete

Vous voudrez peut-être également exécuter find -type f -name '*text*' (sans le -delete) avant cela pour vous assurer de ne pas supprimer des fichiers par erreur.


En fait, vous pouvez placer des caractères génériques n'importe où dans la chaîne de recherche, donc -name '12_angry_men_lone_holdout-*.jpg' pourrait être plus adapté dans votre cas.

1voto

Aneesh Points 11

Essayez ceci :

rm -rf 12_angry_men_lone_holdout-*

Cela gardera 12_angry_men_lone_holdout.jpg et supprimera les fichiers avec des dimensions (290x166)

Et n'oubliez pas

rm -rf 12_angry_men_lone_holdout.*

supprimera également le fichier par défaut dont vous aviez besoin.

1voto

Tamas Points 11

```html

find . -type f -name '*[0-9]x[0-9]*' -delete

Exécutez ceci dans le répertoire parent. Cela va supprimer tous les fichiers qui contiennent un chiffre suivi d'un caractère 'x' suivi d'un autre chiffre dans leur nom.

Soyez quand même prudent, cela pourrait supprimer également des fichiers originaux, si leur nom contient le motif ci-dessus (peu probable). Exécutez d'abord sans '-delete' pour voir si vous avez des fichiers qui portent un tel nom. Si c'est le cas, vous devrez simplement trouver un motif plus restrictif.

```

1voto

Abhra Basak Points 151

J'ai découvert que si vous souhaitez supprimer un répertoire qui commence par une lettre spécifique, vous pouvez utiliser la commande suivante:

Disons que vous avez créé les dossiers suivants:

  • Baka
  • baka
  • Aka

    rm -rf B b

Cela supprimera tous les répertoires commençant par ces lettres (B majuscule et b minuscule).

Après avoir exécuté cette commande, vous ne garderez que le dossier nommé Aka. Vous pouvez le vérifier en utilisant ls pour lister les dossiers restants dans le répertoire actuel.

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