Renommer des fichiers dans des sous-dossiers
Résolu/Fermé
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
-
4 nov. 2007 à 19:23
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 - 4 nov. 2007 à 22:33
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 - 4 nov. 2007 à 22:33
A voir également:
- Renommer des fichiers dans des sous-dossiers
- Renommer plusieurs fichiers - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Renommer iphone - Guide
- Comment renommer quelqu'un sur instagram - Forum Instagram
- Fusionner des fichiers excel - Guide
8 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
4 nov. 2007 à 20:39
4 nov. 2007 à 20:39
Salut,
Normalement pour faire une recherche récursive selon certains critères et exécuter une commande derrière on utilise "find" couplé à "exec" :
Donne_moi la syntaxe que tu utilises pour renommer tes fichiers afin d'essayer d'adapter la commande à ton cas.
;-))
Normalement pour faire une recherche récursive selon certains critères et exécuter une commande derrière on utilise "find" couplé à "exec" :
find /home -name "fichier" -type f -exec mv {} /rep/destination/ \;Mais dans ton cas ça risque de ne pas le faire.
Donne_moi la syntaxe que tu utilises pour renommer tes fichiers afin d'essayer d'adapter la commande à ton cas.
;-))
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
4 nov. 2007 à 21:03
4 nov. 2007 à 21:03
Merci.
Tout d'abord, mes fichiers sont dans plusieurs sous dossiers de "/home/sylvain/Bureau/Mes images/Photos".
Il sont tous nommés comme ceci : P[numéro du mois][numéro du jour][numéro de la photo].JPG
Exemple : P9060001.JPG, pour la première photo que j'ai prise le 6 septembre.
Par contre, si le numéro du mois est à deux chiffres, c'est une lettre :
janvier : 1
février : 2
...
septembre : 9
octobre : A
novembre : B
décembre : C
Donc par exemple PC250035.JPG, pour la 35° photo prise le 25 décembre.
Ensuite, la syntaxe que j'utilise pour renommer un fichier avec exiv2 :
exiv2 -r %Y-%B-%d--%HH%M mv "/home/sylvain/Bureau/Mes images/Photos/........../P........JPG"
Voici quelques extraits de man exiv2 :
J'utilise donc l'option -r pour spécifier le format du nom du fichier renommé via l'action mv, et %[caractère] pour exporter l'année, l'heure...
L'année correspond à Y, le mois à m, le numéro du jour à d, leure à H, la minute à M et la seconde à S.
Tout d'abord, mes fichiers sont dans plusieurs sous dossiers de "/home/sylvain/Bureau/Mes images/Photos".
Il sont tous nommés comme ceci : P[numéro du mois][numéro du jour][numéro de la photo].JPG
Exemple : P9060001.JPG, pour la première photo que j'ai prise le 6 septembre.
Par contre, si le numéro du mois est à deux chiffres, c'est une lettre :
janvier : 1
février : 2
...
septembre : 9
octobre : A
novembre : B
décembre : C
Donc par exemple PC250035.JPG, pour la 35° photo prise le 25 décembre.
Ensuite, la syntaxe que j'utilise pour renommer un fichier avec exiv2 :
exiv2 -r %Y-%B-%d--%HH%M mv "/home/sylvain/Bureau/Mes images/Photos/........../P........JPG"
Voici quelques extraits de man exiv2 :
ACTIONS [...] mv | rename Rename files and/or set file timestamps according to the Exif create timestamp. Uses the value of tag Exif.Photo.DateTimeOriginal or, if not present, Exif.Image.DateTime to determine the timestamp. The filename format can be set with -r fmt, timestamp options are -t and -T. [...] OPTIONS [...] -r fmt Filename format for the ’rename’ action. The format string follows strftime(3) and supports the following keywords: :basename: - original filename without extension :dirname: - name of the directory holding the original file :parentname: - name of parent directory Default filename format is %Y%m%d_%H%M%S.
J'utilise donc l'option -r pour spécifier le format du nom du fichier renommé via l'action mv, et %[caractère] pour exporter l'année, l'heure...
L'année correspond à Y, le mois à m, le numéro du jour à d, leure à H, la minute à M et la seconde à S.
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
4 nov. 2007 à 21:11
4 nov. 2007 à 21:11
Pendant que tu répondais voilà ce que j'étais en train de tester :
[rep]$ tree . |-- FORMULE_1_036.jpg |-- FORMULE_1_037.jpg `-- rep1 |-- FORMULE_1_036.jpg |-- FORMULE_1_037.jpg `-- rep2 |-- FORMULE_1_036.jpg |-- FORMULE_1_037.jpg `-- rep3 |-- FORMULE_1_036.jpg |-- FORMULE_1_037.jpg `-- rep4 |-- FORMULE_1_036.jpg `-- FORMULE_1_037.jpg 4 directories, 10 files [rep]$ find . -name "*.jpg" -type f -exec exiv2 -r':basename:_%Y%m' rename {} \; [rep]$ tree . |-- FORMULE_1_036_200710.jpg |-- FORMULE_1_037_200710.jpg `-- rep1 |-- FORMULE_1_036_200710.jpg |-- FORMULE_1_037_200710.jpg `-- rep2 |-- FORMULE_1_036_200710.jpg |-- FORMULE_1_037_200710.jpg `-- rep3 |-- FORMULE_1_036_200710.jpg |-- FORMULE_1_037_200710.jpg `-- rep4 |-- FORMULE_1_036_200710.jpg `-- FORMULE_1_037_200710.jpg 4 directories, 10 files [rep]$Adapte à ton cas ;-))
vignemail1
Messages postés
1246
Date d'inscription
vendredi 8 octobre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
259
4 nov. 2007 à 21:14
4 nov. 2007 à 21:14
je pense
find /home -iname "/home/sylvain/Bureau/Mes images/Photos/*.jpg" -type f -exec exiv2 -r %Y-%B-%d--%HH%M mv {} ;
find /home -iname "/home/sylvain/Bureau/Mes images/Photos/*.jpg" -type f -exec exiv2 -r %Y-%B-%d--%HH%M mv {} ;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
4 nov. 2007 à 21:29
4 nov. 2007 à 21:29
find /home/sylvain/Bureau/Mes\ images/Photos -iname "*.jpg" -type f -exec exiv2 -r '%Y-%B-%d--%HH%M' rename {} \;N'oublie pas le "\;" à la fin de l'expression.
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
4 nov. 2007 à 22:03
4 nov. 2007 à 22:03
Merci à tous les deux.
Pour le moment, voici l'expression que j'utilise :
sylvain@sylvain-ordiprincipal-ubuntu:~/Bureau/Mes images/Photos$ find . -iname "*.jpg" -exec exiv2 -r %Y-%m-%d--%HH%Mm%Ss.jpg mv {} +
D'après ce que j'en ai compris :
- find : trouve dans le dossier . (le dossier courant) les fichiers dont le nom correspond à *.jpg (* pour n'importe quel caractère) sans respecter la casse (iname), et pour chaque fichier exécute (-exec) la commande :
- exiv2 pour lire les informations exif et renommer le fichier avec en utilisant -r pour renommer avec le format %Y-%m...... et l'action mv pour renommer le fichier trouvé {}. + sert à finir -exec.
Mais je n'arrive pas à faire fonctionner cette commande. Tout semble marcher, sauf qu'une fois l'opération finie, rien n'est renommé, et parfois j'ai des erreurs du type :
exiv2: File `./dossier/dossier/0-00-00--00H0000s.jpg.JPG' exists. [O]verwrite, [r]ename or [s]kip?
Et quoi que je fasse, (O/r/s), je ne vois rien.
Il y a également comme problème le fait que l'extension .JPG soit gardée, mais je crois que c'est normal.
Et puis, il me suffira de répeter l'opération en utilisant -r :basename.
Peut-être que l'oubli du \; est une cause du problème. Je vais ré-essayer avec.
--
Sylvain
Pour le moment, voici l'expression que j'utilise :
sylvain@sylvain-ordiprincipal-ubuntu:~/Bureau/Mes images/Photos$ find . -iname "*.jpg" -exec exiv2 -r %Y-%m-%d--%HH%Mm%Ss.jpg mv {} +
D'après ce que j'en ai compris :
- find : trouve dans le dossier . (le dossier courant) les fichiers dont le nom correspond à *.jpg (* pour n'importe quel caractère) sans respecter la casse (iname), et pour chaque fichier exécute (-exec) la commande :
- exiv2 pour lire les informations exif et renommer le fichier avec en utilisant -r pour renommer avec le format %Y-%m...... et l'action mv pour renommer le fichier trouvé {}. + sert à finir -exec.
Mais je n'arrive pas à faire fonctionner cette commande. Tout semble marcher, sauf qu'une fois l'opération finie, rien n'est renommé, et parfois j'ai des erreurs du type :
exiv2: File `./dossier/dossier/0-00-00--00H0000s.jpg.JPG' exists. [O]verwrite, [r]ename or [s]kip?
Et quoi que je fasse, (O/r/s), je ne vois rien.
Il y a également comme problème le fait que l'extension .JPG soit gardée, mais je crois que c'est normal.
Et puis, il me suffira de répeter l'opération en utilisant -r :basename.
Peut-être que l'oubli du \; est une cause du problème. Je vais ré-essayer avec.
--
Sylvain
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
4 nov. 2007 à 22:29
4 nov. 2007 à 22:29
et parfois j'ai des erreurs du type :
exiv2: File `./dossier/dossier/0-00-00--00H0000s.jpg.JPG' exists. [O]verwrite, [r]ename or [s]kip?
Ben c'est normal si tu ne conserves rien de spécifique à chaque fichier, chaque fichier est renommé en un seul et unique nom à la seconde près. Vu la vitesse de traitement le 1er est renommé mais dans la foulée le second est renommé avec le même nom d'où la demande de confirmation, là les secondes s'écoulent un troisième est renommé mais ça bute sur le quatrième, etc., etc.
exiv2: File `./dossier/dossier/0-00-00--00H0000s.jpg.JPG' exists. [O]verwrite, [r]ename or [s]kip?
Ben c'est normal si tu ne conserves rien de spécifique à chaque fichier, chaque fichier est renommé en un seul et unique nom à la seconde près. Vu la vitesse de traitement le 1er est renommé mais dans la foulée le second est renommé avec le même nom d'où la demande de confirmation, là les secondes s'écoulent un troisième est renommé mais ça bute sur le quatrième, etc., etc.
Ssylvainsab
Messages postés
2884
Date d'inscription
samedi 29 juillet 2006
Statut
Modérateur
Dernière intervention
15 août 2020
825
4 nov. 2007 à 22:33
4 nov. 2007 à 22:33
Tu veux dire que les données exif seraient incomplètes ?
C'est parfois le cas, mais pas toujours.
Je recommencerais plus tard.
Sinon, pour l'histoire des fichiers non renommés, en fait c'est tout simple : j'avais mis le dossier dans la corbeille, en l'ayant copié au préalable, avant de renommer les fichiers. Les fichiers renommés étaient dans la corbeille, et pas dans le dossier copié (qui avait pourtant le même nom).
Cette commande marche : find . -iname "*.jpg" -exec exiv2 -r %Y-%m-%d--%HH%Mm%Ss.jpg mv {} \;
--
Sylvain
C'est parfois le cas, mais pas toujours.
Je recommencerais plus tard.
Sinon, pour l'histoire des fichiers non renommés, en fait c'est tout simple : j'avais mis le dossier dans la corbeille, en l'ayant copié au préalable, avant de renommer les fichiers. Les fichiers renommés étaient dans la corbeille, et pas dans le dossier copié (qui avait pourtant le même nom).
Cette commande marche : find . -iname "*.jpg" -exec exiv2 -r %Y-%m-%d--%HH%Mm%Ss.jpg mv {} \;
--
Sylvain