OVH Cloud OVH Cloud

Modification de la date d'un fichier

37 réponses
Avatar
lionmarron
Bonjour,

Existe-t-il une instruction qui permettrait de modifier la date de
création d'un fichier ?

Ce n'est pas précisément le sujet mais à tout hasard j'explique pour
quoi c'est faire : j'ai enregistré des mails dans un dossiers et pour
des raisons que je ne tiens pas à connaître (soyons modestes) cela
marche mais pas d'une façon très habituelle. Les noms de fichiers sont
plutôt bizarre (franchement long), et les dates de création sont
devenues la date du jour de la copie (ce qui ne m'arrange pas pour les
opérations de tri par exemple).

--
lionmarron

10 réponses

1 2 3 4
Avatar
Nicolas George
Benoit Izac , dans le message , a écrit :
Maintenant que tu as répondu au problème numéro deux, il reste le
dernier : récupérer la date de réception du mail (l'émetteur peut avoir
mis un champ date bidon) ; je ramasse les copies à la fin de la
journée. ;-)



Normalement il est dans la ligne "^From " qui délimite le mail, mais là elle
semble avoir été tronquée.
Avatar
Benoit Izac
Bonjour,

le 08/05/2013 à 15:53, Francois Lafont a écrit dans le message
<518a58e7$0$2115$ :

changer_date () {
date=$(grep '^Date: ' "$1" | cut -d' ' -f'2-')



Peut-être :

date=$(grep '^Date: ' "$1" | head -n1 | cut -d' ' -f'2-')

au cas où...



Plutôt date=$(sed -ne '/^$/q;s/^Date: (.*)$/1/p' "$1") qui t'évitera
de lire des mails de 15 Mo alors que le champ date se trouve au début.

--
Benoit Izac
Avatar
Benoit Izac
Bonjour,

le 08/05/2013 à 16:25, Nicolas George a écrit dans le message
<518a6075$0$2040$ :

Maintenant que tu as répondu au problème numéro deux, il reste le
dernier : récupérer la date de réception du mail (l'émetteur peut avoir
mis un champ date bidon) ; je ramasse les copies à la fin de la
journée. ;-)



Normalement il est dans la ligne "^From " qui délimite le mail, mais là elle
semble avoir été tronquée.



Je suis en maildir (c'est ce semble avoir le PO) et je n'ai pas le From
de mbox(5).

--
Benoit Izac
Avatar
Francois Lafont
Le 08/05/2013 15:57, Nicolas George a écrit :

Je conseillerais plutôt, en zsh :

for i in **/*.eml(.)



Je le note dans un coin celui-là, il est vraiment concis.

changer_date $i



Et ben, j'aurais juré qu'il faille mettre « "$i" » à la place de « $i », mais non manifestement pas avec zsh.


--
François Lafont
Avatar
Benoit Izac
Bonjour,

le 08/05/2013 à 16:45, Francois Lafont a écrit dans le message
<518a6526$0$18733$ :

Moi je dis que c'est un peu à Lionmarron de bosser maintenant. En
plus, je n'ai pas trop pigé où l'on pouvait récupérer la date de
réception du mail.



À chaque fois qu'un mail traverse un serveur, ce dernier ajoute dans
l'en-tête un champ « Received: [...] » qui peut être sur plusieurs
lignes et qui contient plusieurs informations dont la date de réception.

Manifestement, Lionmarron parle de mail alors qu'à la vue de l'exemple
donné, ce sont plutôt des archives de messages Usenet ; il faudrait
avoir le « NNTP-Posting-Date:  » qui ne semble pas être conservé par
thunderbird.

--
Benoit Izac
Avatar
Benoit Izac
Bonjour,

le 08/05/2013 à 17:31, Francois Lafont a écrit dans le message
<518a6fe5$0$2034$ :

À chaque fois qu'un mail traverse un serveur, ce dernier ajoute dans
l'en-tête un champ « Received: [...] » qui peut être sur plusieurs
lignes et qui contient plusieurs informations dont la date de réception.



Ok. Effectivement dans ce cas, Lionmarron aura un peu plus de boulot. :-)



C'est pour cela que je pense qu'il est plus rapide et plus fiable
d'utiliser un langage de haut niveau pour ce travail. Il y a de fortes
chances que d'autres personnes ont déjà créés une bibliothèque pour
parser un email et en extraire les champs comme il faut ; tout autant
que d'autres aient écrit les fonctions pour lire une date en prenant en
compte des possibilités que je n'image pas et dont je n'ai pas à me
soucier pour arriver à mes fins.

Manifestement, Lionmarron parle de mail alors qu'à la vue de l'exemple
donné, ce sont plutôt des archives de messages Usenet ; il faudrait
avoir le « NNTP-Posting-Date: » qui ne semble pas être conservé par
thunderbird.



Sur le Thunderbird (Icedove plus précisément) de ma Debian Squeeze, ce
champ est bien présent. Peut-être que Lionmarron a fait un
copier-coller partiel du fichier eml.



Si c'est le cas, il vaut mieux utiliser le NNTP-Posting-Date qui a moins
de chance d'être erroné.

Après, il y a encore une chose qui me tracasse dans ce fil : quel est
l'intérêt de pouvoir classer des messages dans un répertoire selon la
date à laquelle ils ont été crées ? Pourquoi ne pas les visualiser triés
par date dans thunderbird (je n'utilise pas thunderbird) ?

--
Benoit Izac
Avatar
lionmarron
Le 08/05/2013 18:13, Benoit Izac a écrit :
Si c'est le cas, il vaut mieux utiliser le NNTP-Posting-Date qui a moins
de chance d'être erroné.



De toute façon je crois que ça sera pas le problème.

En fait je n'ai jamais réalisé de fichier BASH et je vais peut-être
commencer par des exercices plus simples.

Après, il y a encore une chose qui me tracasse dans ce fil : quel est
l'intérêt de pouvoir classer des messages dans un répertoire selon la
date à laquelle ils ont été crées ? Pourquoi ne pas les visualiser triés
par date dans thunderbird (je n'utilise pas thunderbird) ?



Ils ont été reçus ou envoyés depuis un autre ordinateur.

--
lionmarron
Avatar
Benoit Izac
Bonjour,

le 08/05/2013 à 19:59, lionmarron a écrit dans le message
<kme3pl$lfh$ :

Si c'est le cas, il vaut mieux utiliser le NNTP-Posting-Date qui a moins
de chance d'être erroné.



De toute façon je crois que ça sera pas le problème.

En fait je n'ai jamais réalisé de fichier BASH et je vais peut-être
commencer par des exercices plus simples.



Si il y a des choses que tu ne comprends pas dans les exemples donnés,
dis-le.

Après, il y a encore une chose qui me tracasse dans ce fil : quel est
l'intérêt de pouvoir classer des messages dans un répertoire selon la
date à laquelle ils ont été crées ? Pourquoi ne pas les visualiser triés
par date dans thunderbird (je n'utilise pas thunderbird) ?



Ils ont été reçus ou envoyés depuis un autre ordinateur.



Ça ne change rien, le contenu est le même ; d'ailleurs, j'ai changé de
machine plusieurs fois depuis que je conserve des mails et, bien que j'ai
sans doute fait un jour un cp tout bête qui a mis à jour la date de
modification, je n'ai aucun problème pour les lire et les classer par
date dans mon lecteur.

As-tu essayé de les importer dans thunderbird comme le propose
François ?

--
Benoit Izac
Avatar
lionmarron
Le 08/05/2013 21:16, Benoit Izac a écrit :

As-tu essayé de les importer dans thunderbird comme le propose
François ?


C'est bien là le problème. Si je sélectionne des mails Thunderbird veut
bien les enregistrer, mais ce qu'il enregistre est ce que j'ai montré et
ensuite il ne veut pas le lire (je me souviens pas du message d'erreur
mais il devait ne pas être très original).

--
lionmarron
Avatar
Benoit Izac
Bonjour,

le 08/05/2013 à 21:42, Francois Lafont a écrit dans le message
<518aaaad$0$14000$ :

En fait, on aurait dû commencer par là. :-)



Je le pense aussi.

--
Benoit Izac
1 2 3 4