Outils pour utilisateurs

Outils du site


modifier_les_dates_des_photos_metadata_et_des_fichiers

Modifier les dates des photos (metadata) et des fichiers

Décrémenter la date des fichiers d'un répertoire

On décide d'appliquer la commande touch 1) à un ensemble de fichiers existants. Les solutions présentées peuvent être déclinées pour de multiples usages.

En utilisant la commande find2) :

$ find . -exec sh -c "touch -r {} -d '-1 hour' {}" \;

En utilisant une simple boucle3) for :

for i in *.JPG; do echo "traitement de $i"; touch -r $i -d '-1 hour' $i; done

Appliquer la date Exif d'une photo à son fichier

Typiquement, des copies maladroites de fichiers de photos ont modifié la date du fichier alors que la photo et son fichier avaient originellement la même date.

En utilisant la commande jhead 4) :

$ jhead -dsft mon-fichier-jpeg

Décrémenter la date des photos d'un répertoire (metadata)

En utilisant find5) (ici, on recule d'une heure et trois minutes) :

$ find *.JPG -exec jhead -ta-1:3:0 {} \;

En utilisant une boucle do:

for i in *.JPG; do echo "traitement de $i"; jhead -ta-1:3:0 $i; done

Décrémenter la date des photos et synchroniser les dates de fichiers d'un répertoire

Typiquement, la date de l'appareil photo n'était pas bonne lors de la prise de vue. Les photos (metadonnées) et les fichiers se retrouvent avec une date erronée. En utilisant find :

find *.JPG -exec sh -c "jhead -ta-1:3:0 -ft {}" \;

Avec un sélecteur plus complexe justifiant l'utilisation de find6).

find . -type f  -regextype sed -regex "^\.\/IMG_60[[:digit:]][[:digit:]]\.JPG" -exec sh -c "jhead -ta-1:3:0 -ft {}" \;

En utilisant une boucle do7) :

for i in *.JPG; do jhead -ta-1:3:0 $i; jhead -ft $i; done
1)
Parce que touch est la commande de base pour modifier une date de fichier et qu'elle dispose de la puissance et de la lisibilité de DATE STRING.
2)
L'avantage est qu'on dispose de toute la richesse de la commande find pour sélectionner les fichiers auxquels appliquer la modification. L'inconvénient est que la commande qui suit -exec ne doit avoir qu'un paramètre (-exec n'a pas la puissance de sh). On contourne le problème en demandant à -exec de lancer sh ;-)
3)
Qui permet d'ajouter des commandes additionnelles, si la modification de date n'est qu'une des opérations à réaliser…
4)
Parce qu'elle fait ça bien et simplement. Et aussi, parce qu'elle peut servir à faire l'opération inverse, sans chambouler les méta-données de l'image initiale.
5)
Pas besoin de shell puisque la commande jhead qui convient requiert un seul paramètre.
6)
Le cas réel est celui d'un répertoire où se trouvent les photos venant de plusieurs appareil photo. Seul l'un d'entre eux n'était pas à l'heure.
7)
Découpage délibéré en deux commandes.
modifier_les_dates_des_photos_metadata_et_des_fichiers.txt · Dernière modification: 2020/01/12 21:55 par flaz