Changer date de création via bash

Le
Jo
Bonjour,

Soit un lot de fichiers vidéo, dont la date de création a été modifiée
lors de multiples transferts. Et vu que ces fichiers n'ont pas de
données EXIF, il n'est pas possible avec GraphicConverter de corriger
facilement ce défaut.

Heureusement, la date en question est toujours présente dans le nom du
fichier : YYMMDD-hhmmss.mov (par ex. 040527-105040.mov)

Est-il possible, via bash de parcourir un dossier et de changer la
date de création de chaque fichier *.mov en fonction de son nom? Pour
l'instant, je merdoie, les quelques scripts trouvés çà et là ne
tournent pas très rond.

Merci d'avance,

--
Jo
"Don't suffer from insanity, enjoy every minute of it."
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Stadelmann
Le #22892701
In article Jo
Bonjour,

Soit un lot de fichiers vidéo, dont la date de création a été modifiée
lors de multiples transferts. Et vu que ces fichiers n'ont pas de
données EXIF, il n'est pas possible avec GraphicConverter de corriger
facilement ce défaut.

Heureusement, la date en question est toujours présente dans le nom du
fichier : YYMMDD-hhmmss.mov (par ex. 040527-105040.mov)

Est-il possible, via bash de parcourir un dossier et de changer la
date de création de chaque fichier *.mov en fonction de son nom? Pour
l'instant, je merdoie, les quelques scripts trouvés çà et là ne
tournent pas très rond.



Pour le changement lui-même, il faut la commande "SetFile" qui
s'installe avec Xcode. Je ne crois pas qu'il y ait en standard d'outil
pour modifier la date de création. Idem avec AppleScript.

<http://developer.apple.com/library/mac/#documentation/Darwin/Reference/M
anPages/man1/SetFile.1.html>

Il faudra aussi un coup de "sed" pour formatter la date correctement.

Patrick
--
Patrick Stadelmann
patpro ~ patrick proniewski
Le #22892761
In article
Patrick Stadelmann
In article Jo
> Bonjour,
>
> Soit un lot de fichiers vidéo, dont la date de création a été modifiée
> lors de multiples transferts. Et vu que ces fichiers n'ont pas de
> données EXIF, il n'est pas possible avec GraphicConverter de corriger
> facilement ce défaut.
>
> Heureusement, la date en question est toujours présente dans le nom du
> fichier : YYMMDD-hhmmss.mov (par ex. 040527-105040.mov)
>
> Est-il possible, via bash de parcourir un dossier et de changer la
> date de création de chaque fichier *.mov en fonction de son nom? Pour
> l'instant, je merdoie, les quelques scripts trouvés çà et là ne
> tournent pas très rond.

Pour le changement lui-même, il faut la commande "SetFile" qui
s'installe avec Xcode. Je ne crois pas qu'il y ait en standard d'outil
pour modifier la date de création. Idem avec AppleScript.



touch fonctionne très bien pour changer la date de modification et
d'accès d'un fichier, malheureusement la date de création est une
métadonnée Apple, pas UNIX. Donc elle n'est pas gérée.

patpro

--
A vendre : KVM IP 16 ports APC
http://patpro.net/blog/index.php/2008/01/12/133
Jo
Le #22894401
On 2010-12-07 08:43:22 +0100, patpro ~ patrick proniewski said:

In article
Patrick Stadelmann
[...]
Pour le changement lui-même, il faut la commande "SetFile" qui
s'installe avec Xcode. Je ne crois pas qu'il y ait en standard d'outil
pour modifier la date de création. Idem avec AppleScript.



touch fonctionne très bien pour changer la date de modification et
d'accès d'un fichier, malheureusement la date de création est une
métadonnée Apple, pas UNIX. Donc elle n'est pas gérée.



Zutalor :(

Finalement je suis retourné dans GraphicConverter, Gestionnaire
d'images, le clic-droit propose, au fin fond du menu une rubrique
"Date->Définir la date en fonction du nom du fichier" mais qui ne
semble pas avoir d'effet. Je vais RTFM de plus près.

Merci à tous les deux pour les pistes,

--
Jo
"Don't suffer from insanity, enjoy every minute of it."
Patrick Stadelmann
Le #22894661
In article Jo
On 2010-12-07 08:43:22 +0100, patpro ~ patrick proniewski said:

> In article
> > Patrick Stadelmann >
>> [...]
>> Pour le changement lui-même, il faut la commande "SetFile" qui
>> s'installe avec Xcode. Je ne crois pas qu'il y ait en standard d'outil
>> pour modifier la date de création. Idem avec AppleScript.
>
> touch fonctionne très bien pour changer la date de modification et
> d'accès d'un fichier, malheureusement la date de création est une
> métadonnée Apple, pas UNIX. Donc elle n'est pas gérée.

Zutalor :(



Si le problème c'est installer Xcode, il existe une alternative :

<http://www.hamsoftengineering.com/codeSharing/ChangeFileDates/ChangeFile
Dates.html>

Patrick
--
Patrick Stadelmann
Lionel Mychkine
Le #22894921
In article
Patrick Stadelmann
Pour le changement lui-même, il faut la commande "SetFile" qui
s'installe avec Xcode.



J'ai eu à traiter ce cas et j'ai constaté que SetFile ne respecte pas
l'heure locale.

Si on passe l'argument 01/01/2010 15:22, on se retrouvera en fonction
des heures d'hiver et d'été avec 14:22 ou 15:22. Je n'ai pas trouvé
comment résoudre ce problème sauf au travers d'un hack infâme mais qui
fonctionne. J'ai honte ;-)

--
Lionel Mychkine
Jo
Le #22897541
On 2010-12-07 08:09:51 +0100, Patrick Stadelmann said:

Pour le changement lui-même, il faut la commande "SetFile" qui
s'installe avec Xcode. […]



Donc, j'ai pondu ça :
8<---
for f in *.mov
do
fn=`basename $f`
echo $fn
Y=${f:0:2}
M=${f:2:2}
D=${f:4:2}
h=${f:7:2}
m=${f:9:2}
s=${f:11:2}
t=$M/$D/$Y' '$h:$m:$s
echo $t

# SetFile -d $t $f
done
8<---

Si je décommente la ligne "SetFile", je tombe sur une erreur :
8<---
100908_111213.mov
09/08/10 11:12:13
ERROR: File Not Found. (-43) on file: 11:12:13
8<---


Il faudra aussi un coup de "sed" pour formatter la date correctement.



Rien trouvé (ou mal cherché) dans le man de "sed" pour reformatter la date.

Merci du coup de main et bonne journée,

--
Jo
"Don't suffer from insanity, enjoy every minute of it."
Patrick Stadelmann
Le #22897691
In article Jo
Si je décommente la ligne "SetFile", je tombe sur une erreur :
8<---
100908_111213.mov
09/08/10 11:12:13
ERROR: File Not Found. (-43) on file: 11:12:13
8<---



Il faut lire le man :-) C'est précisé qu'il faut mettre des " " si la
date contient des espaces.

Patrick
--
Patrick Stadelmann
Jo
Le #22898081
On 2010-12-08 11:07:00 +0100, Patrick Stadelmann said:

Il faut lire le man :-) C'est précisé qu'il faut mettre des " " si la
date contient des espaces.



OK, je m'étais pris les pieds dans les apostrophes. Avec la ligne

SetFile -d "$t" $f

Tout baigne, sauf pour un fichier :
8<---
090807-020304.mov
08/07/09 02:03:04
ERROR: Unexpected Error. (-5000) on file: 090807-020304.mov
8<---

Merci mille fois, je vais pouvoir passer au stade industriel ;-)

--
Jo
"Don't suffer from insanity, enjoy every minute of it."
Publicité
Poster une réponse
Anonyme