#1 Le 06/09/2011, à 21:30
- chiron
[résolu] BASH: Date de modification d'un fichier dans une variable
Bonsoir,
J'ai une série de "vieux" JPG sans données exif. Le but du jeu est de mettre la date et heure de dernière modification du fichier comme donnée exif de création de photo (avec exiv2),et de répéter l'opération pour les 500 fichiers. Le problème c'est que je n'arrive pas à récupérer la date de modif d'un fichier pour la mettre dans une variable. Je n'arrive à rien avec stat ou ls. Quelqun a une astuce?
Dernière modification par chiron (Le 07/09/2011, à 22:11)
In hoc signo vinces.
Hors ligne
#2 Le 06/09/2011, à 21:40
- JoelS
Re : [résolu] BASH: Date de modification d'un fichier dans une variable
perl -MFile::stat -e 'print scalar localtime stat("examples.desktop")->mtime, "\n"'
si tu veux la date au format naturel du fichier examples.desktop, et
perl -MFile::stat -e 'print localtime stat("examples.desktop")->mtime, "\n"'
si tu la veux en epoch
Tu peux même ôter la chaîne , "\n" si tu ne veux pas un retour chariot à la fin.
Hors ligne
#3 Le 06/09/2011, à 22:39
- chiron
Re : [résolu] BASH: Date de modification d'un fichier dans une variable
Merci, ça donne:
jyl@E6400:~/Bureau/int$ perl -MFile::stat -e 'print scalar localtime stat("1.jpg")->mtime, "\n"'
Sat Nov 19 15:19:26 2005
mais la chose se corse, de par le format des paramètres exigés par exiv2
-a time Time adjustment in the format [-]HH[:MM[:SS]]. This option
is only used with the 'adjust' action.
-Y yrs Year adjustment with the 'adjust' action.
-O mon Month adjustment with the 'adjust' action.
-D day Day adjustment with the 'adjust' action.
Comment extraire chaque valeur?
In hoc signo vinces.
Hors ligne
#4 Le 06/09/2011, à 22:39
- AnsuzPeorth
Re : [résolu] BASH: Date de modification d'un fichier dans une variable
Bjr,
modif=$(stat -c '%y' ./fichier)
heure=${modif#* }
heure=${heure%.*}
year=${modif%%-*}
base=${modif%% *}
day=${base##*-}
month=${base#*-}
month=${month%-*}
EDIT: Ajout du "découpage", solution "fullbash", plus rapide que des cut.(mais ca serait plus simple/rapide en python !)
Dernière modification par AnsuzPeorth (Le 06/09/2011, à 22:55)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#5 Le 07/09/2011, à 22:10
- chiron
Re : [résolu] BASH: Date de modification d'un fichier dans une variable
Un grand merci.
Je suis arrivé à mes fins.
#!/bin/bash
#
cd /home/jyl/Bureau/int
for filename in $(ls -1); do
modif=$(stat -c '%y' $filename)
heure=${modif#* }
heure=${heure%.*}
year=${modif%%-*}
base=${modif%% *}
day=${base##*-}
month=${base#*-}
month=${month%-*}
exiv2 -M"set Exif.Image.DateTime $year:$month:$day $heure" $filename
done
# http://www.exiv2.org/tags.html
cd /home/jyl
In hoc signo vinces.
Hors ligne