web-dev-qa-db-fra.com

Supprimer tous les fichiers dont les noms contiennent une chaîne particulière?

J'ai changé mon thème wordpress. L'ancien créait tellement d'images sur le serveur. Mon nouveau thème n'en a pas besoin, donc je veux tout 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

Utiliser Digitalocean, Ubuntu 13.10.

21
Ibrahim Mumcu

S'ils se trouvent dans le même dossier, utilisez * un caractère générique pour y parvenir:

rm *text*

text est la chaîne que contient le nom du fichier.

20
myhau

Utilisez find pour rechercher et supprimer de manière récursive des fichiers dont le nom contient "texte":

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

Vous pouvez également vouloir exécuter find -type f -name '*text*' (sans le -delete) avant cela pour vous assurer de ne pas supprimer les fichiers que vous n'aviez pas l'intention de supprimer.


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

27
n.st

Essaye ça:

rm -rf 12_angry_men_lone_holdout-*

Ceci va donner keep 12_angry_men_lone_holdout.jpg et supprimer les fichiers aux dimensions (290x166)

Et s'il vous plaît rappelez-vous

rm -rf 12_angry_men_lone_holdout.*

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

1
Aneesh
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 ont un chiffre suivi d'un caractère 'x' suivi d'un autre chiffre dans leur nom.

Soyez prudent, cela pourrait également supprimer les fichiers originaux, si leur nom contient le motif ci-dessus (peu probable). Exécutez-le d'abord sans '-delete' pour voir si vous avez des fichiers portant ce nom. Si c'est le cas, il vous suffira de trouver un schéma plus restrictif.

0
Tamas