Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer date de création via bash

8 réponses
Avatar
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."

8 réponses

Avatar
Patrick Stadelmann
In article <4cfd5a95$0$32426$,
Jo wrote:

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
Avatar
patpro ~ patrick proniewski
In article
,
Patrick Stadelmann wrote:

In article <4cfd5a95$0$32426$,
Jo wrote:

> 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
Avatar
Jo
On 2010-12-07 08:43:22 +0100, patpro ~ patrick proniewski said:

In article
,
Patrick Stadelmann wrote:

[...]
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."
Avatar
Patrick Stadelmann
In article <4cfe4fa1$0$5423$,
Jo wrote:

On 2010-12-07 08:43:22 +0100, patpro ~ patrick proniewski said:

> In article
> ,
> Patrick Stadelmann wrote:
>
>> [...]
>> 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
Avatar
Lionel Mychkine
In article
,
Patrick Stadelmann wrote:

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
Avatar
Jo
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."
Avatar
Patrick Stadelmann
In article <4cff5463$0$5398$,
Jo wrote:

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
Avatar
Jo
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."