Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/12/2010, à 19:45

Thomson

Supprimer des fichiers portant une extension précise

Bonjour a tous,

J'ai une petite question a vous soumettre :

J'ai un répertoire de photos, avec dossier et sous dossier, dont chaque photo se présente ainsi : xxxxx.JPG (notez le JPG en majuscule)

J'ai voulu tout passer sous Xnview pour tout redimensionner, ce qui fut chose faite, j'ai préciser a Xnview d'écraser l'ancien fichier.

Sauf que Xnview a effectivement garder le nom du fichier ... mais pas l'extension !

Je me retrouve donc avec 2 photos identique : 1.jpg (rétrécie) et 1.JPG (originale), et ce pour chaque photo.

J'aimerais donc savoir si quelqu'un a une commande pour pouvoir supprimer toutes les photos finissant par .JPG

Je ne maitrise pas totalement la console, et je n'ai pas d'idée de commande a lancer dans le Terminal pour me faire tout ca en masse.
J'imagine que cette commande doit comporté quelque chose comme «*.JPG» mais j'ai peur de faire une boulette, donc je prefere vous demander.

Donc si quelqu'un aurait une commande pour supprimer en masse (tous les répertoires et sous répertoire inclus) les fichiers finissant par .JPG sans toucher aux autres... ce serait gentil a vous!

Je vous remercie d'avance,

Bonne soirée

Thomas

Hors ligne

#2 Le 27/12/2010, à 20:35

Vaderf

Re : Supprimer des fichiers portant une extension précise

Salut Thomas

Thomson a écrit :

Je ne maitrise pas totalement la console, et je n'ai pas d'idée de commande a lancer dans le Terminal pour me faire tout ca en masse.
J'imagine que cette commande doit comporté quelque chose comme «*.JPG» mais j'ai peur de faire une boulette, donc je prefere vous demander.

Voici une façon de faire ce que tu souhaites :

  1. tu ouvres une console

  2. tu te rends dans le dossier à traiter (avec le commande cd)

  3. tu exécute ces commandes :

    for i in "$(find -name *.JPG)"; do rm "$i"; done

Tous les fichiers se trouvant dans le dossier et les sous-dossiers et se finissant par *.JPG seront effacés. Bien évidemment, comme il primordiale de comprendre ce que l'on met dans une console, je te détaille les commandes :

  • for i in : pour tous les éléments qui correspondent...

  • "$(find -name *.JPG)" : ...à l'extension (*.JPG) contenu dans le nom des fichiers (-name) recherchés (find)

  • do rm "$i" : les effacer (rm = remove)

  • done : fini la boucle

A noter que les guillemets sont importants surtout si tu as des espaces dans le noms des dossiers et fichiers.

Thomson a écrit :

(tous les répertoires et sous répertoire inclus) les fichiers finissant par .JPG sans toucher aux autres...

Veux-tu aussi supprimer les répertoires vides ?

A+


Asus UL80Vt
Ubuntu 11.10

Hors ligne

#3 Le 27/12/2010, à 21:05

Thomson

Re : Supprimer des fichiers portant une extension précise

Salut Vaderf;

Je te remercie de ta réponse, mais cela ne semble pas marcher, voici ce que me répond la console :


nono@nono-desktop:~$ cd /media/Donnees/Photos
nono@nono-desktop:/media/Donnees/Photos$ for i in "$(find -name *.JPG)"; do rm "$i"; done
find: les chemins doivent précéder l'expression : DSC00521.JPG
Utilisation : find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [chemin...] [expression]
rm: ne peut enlever `': Aucun fichier ou dossier de ce type

Pas besoin de supprimer les dossiers vides car il n'y en aura pas wink
Une idée ? Merci d'avance smile

Thomas

Hors ligne

#4 Le 27/12/2010, à 21:52

erpiu

Re : Supprimer des fichiers portant une extension précise

Il manque un . qui désigne le dossier à partir duquel commence la recherche de fichiers :

for i in "$(find . -name *.JPG)" ; do rm "$i" ; done

Le . indique que l'on recherche les fichiers à partir du dossier courant en parcourant tous les éventuels sous-dossiers.

Hors ligne

#5 Le 25/10/2013, à 17:34

bibi04

Re : Supprimer des fichiers portant une extension précise

Il me semble que la commande suivante est bien plus simple et fonctionne même si les noms de fichiers ont un espace :

find . -name *.JPG -delete

Dernière modification par bibi04 (Le 25/10/2013, à 17:34)

Hors ligne

#6 Le 13/09/2015, à 23:26

poscony

Re : Supprimer des fichiers portant une extension précise

erpiu a écrit :

Il manque un . qui désigne le dossier à partir duquel commence la recherche de fichiers :

for i in "$(find . -name *.JPG)" ; do rm "$i" ; done

Le . indique que l'on recherche les fichiers à partir du dossier courant en parcourant tous les éventuels sous-dossiers.


Bonjour ,

cette commande me renvoi un message me listant tout les fichiers que je souhaite effacer , mais elle ne me les efface pas.
En revanche après m'avoir fait la liste des fichier elle me dit qu'il n'y a  aucun fichier de ce type.

La commande :  find . -name *.JPG -delete  fonctionne parfaitement mais je pense qu'il vaut mieux etre dans le bon répertoire non ??

@ bientot .

Hors ligne