Qu'est-ce qu'une date de fichier ?
Je me suis souvent demandé ce que veux bien vouloir dire la date mise à coté du fichier. Je dois juste m'en servir lors d'un "ls -rtl" pour retrouver facilement les fichiers générés à l'instant mais je ne suis guère aller plus loin. Si, il y a bien eu une fois, où j'ai cherché un fichier que je venais d'enregistrer, sans savoir ou, avec find en faisant une recherche sur le "modification time".
Bref, cette date correspond à la dernière écriture du fichier, à sa dernière modification mais aussi à sa dernière copie. Dans ce cas, elle n'indique plus l'age des données contenues mais l'âge du blob de bit ainsi créé (à moins d'utiliser l'option "-p" de cp). Mais quel est l'intérêt de ne pas utiliser '-p' ?
Lors d'une copie depuis internet, la date inscrite est celle du téléchargement et non celle de l'âge des données. Quel intérêt, cela peut avoir ? C'est simplement le plus simple à avoir ?
La plus part des appareils photos sauvegardent maintenant la date en format EXIF dans la photo. Cela permet de résister au copie sauvage sans la date. Mais est-ce que cette date a un intérêt à rester une données externe au fichier ?
La copie et l'écriture sont 2 opérations semblables d'un point de vue techniques mais qui n'ont rien à voir d'un point de vue des données. D'ailleurs, je ne comprends toujours pas pourquoi Linux ne propose pas un fops "copy" pour optimiser les copies et faire du "copy on write" par exemple, ou éviter les aller retour sur un serveur nfs.
Vous servez-vous de ces dates de fichier ?
# make
Posté par niol (site web personnel) . Évalué à 7.
[^] # Re: make
Posté par Guillaum (site web personnel) . Évalué à 2.
Les *remplacents* de make, comme scons, se basent sur un hash du fichier (stocké dans un fichier) pour établir la modification.
En pratique, la date peut etre biasée par enormement de choses (differences d'heures entre les machines, copies, gestionnaire de version, ...), c'est donc une erreur que de s'en servir.
[^] # Re: make
Posté par ubitux . Évalué à 2.
[^] # Re: make
Posté par Matthieu Moy (site web personnel) . Évalué à 4.
Make, mais aussi la quasi-totalité des gestionnaires de versions.
# Oubli ?
Posté par Obsidian . Évalué à 5.
Bref, cette date correspond à la dernière écriture du fichier, à sa dernière modification mais aussi à sa dernière copie. Dans ce cas, elle n'indique plus l'age des données contenues mais l'âge du blob de bit ainsi créé (à moins d'utiliser l'option "-p" de cp). Mais quel est l'intérêt de ne pas utiliser '-p' ?
D'un point de vue sémantique, si les données ont été modifiées, alors ce n'est plus les mêmes. La date de modification est donc, de ce point de vue, la « date de création » des données telles que tu les vois. D'autre part, quand tu copies un fichier ou le télécharges, il est utile de savoir à quelle date il est arrivé sur ton disque ... ne serait-ce que pour savoir que c'est bien lui la copie ! C'est aussi fondamental dans le cas des Makefile. En plus, il y a ambigüité : une copie est considérée à juste titre comme un nouveau fichier qui a donc, lui, une date de naissance propre.
Ceci dit, c'est vrai que ça manque, et que ce serait plus utile que les access time et change time.
[^] # Re: Oubli ?
Posté par Nicolas Boulay (site web personnel) . Évalué à 3.
Quel est l'utilité ? Cette date serait la seul différence avec le fichier d'origine.
"La première sécurité est la liberté"
[^] # Re: Oubli ?
Posté par theocrite (site web personnel) . Évalué à 4.
Un autre exemple, j'ai des serveurs où je fais pas mal de wget dans le /tmp, mais je ne les redémarre jamais. Du coup un ls -altr /tmp me permet de savoir quels sont les plus récents arrivés sur le disque, ce sont eux les candidats les plus sérieux à la suppression.
[^] # Re: Oubli ?
Posté par liberforce (site web personnel) . Évalué à 9.
[^] # Re: Oubli ?
Posté par Dysen . Évalué à 1.
[^] # Re: Oubli ?
Posté par Thomas Douillard . Évalué à 6.
[^] # Re: Oubli ?
Posté par liberforce (site web personnel) . Évalué à 3.
[^] # Re: Oubli ?
Posté par windu.2b . Évalué à 3.
[^] # Re: Oubli ?
Posté par Anthony Jaguenaud . Évalué à 3.
Mouai ==>[]
[^] # Re: Oubli ?
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
On peut tricher facilement sur le mtime (touch permet de le modifier, cp -a le conserve, tar xf le restaure, ...), mais difficilement sur le ctime, qui correspond de manière bien plus fiable à la date de dernier changement sur le inode du fichier (certaines opérations comme créer un lien en dur modifient le ctime et pas le mtime).
Pour voir les deux : ls -l et ls -l --time=ctime.
[^] # Re: Oubli ?
Posté par Obsidian . Évalué à 4.
Ceci introduirait d'ailleurs encore une nouvelle date : la naissance des données que le fichier contient est-elle la même que celle du fichier initial ? La réponse est oui dans le cas de l'EXIF car ton APN stocke directement la photo qu'il vient de prendre sous forme de fichier, mais dans le cas d'un PDF ou d'un fichier scanné, il faudrait conserver la date de rédaction du document. La première différence est que celle-ci est plus difficilement déterminable par un ordinateur.
# hummm
Posté par nullisimo . Évalué à 2.
[^] # Re: hummm
Posté par Nicolas Boulay (site web personnel) . Évalué à 2.
"La première sécurité est la liberté"
[^] # Re: hummm
Posté par nullisimo . Évalué à 6.
Le hash c'est tres bien, mais c'est pas specialement ce que l'on fait de moins couteux ;-)
Meme si j'ai bien la signature de mes fichiers lors du backup, verifier ~ 25 millions de fichiers n'est pas ce qu'on appeller une aide rapide a la decision. 98% de nos fichiers ont mtime==ctime. Il est arrive que certains de mes collegues "maquillent" le mtime pour camoufler une operation (c'est une fausse bonne idee typique) et eviter que ca se remarque plus tard (lors des migrations aux archives par exemple). Une preselection via ctime/mtime permet de mettre le doigt sur 95% des problemes en quelques heures, plutot que de verifier les hashes 9To de donnees.
[^] # Re: hummm
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
[^] # Re: hummm
Posté par 태 (site web personnel) . Évalué à 2.
alias jour='ls *(a-2^/)' #fichiers lus ces 2 derniers jours
alias recent='echo *(oa[1,3]^/)' #3 fichiers les plus récemment lus
Depuis que j'ai mis une partie de mon système en noatime, je me suis rendu compte que mutt aussi se sert du atime pour savoir si les mails ont été lus depuis la dernière modif. Il y a certainement d'autres usages moins anecdotiques, non ?
# Parce que c'est une méta-donnée
Posté par benoar . Évalué à 2.
# Fichier != document ...
Posté par Thomas Douillard . Évalué à 4.
Je m'explique, un document peut "vivre" en version papier, électronique, être copié, etc. On voit bien que la version imprimée d'un pdf n'a rien a voir avec le fichier (dans le sens système de fichier) pdf qui a servi a le générer.
Donc ce genre de document est souvent daté "a l'intérieur des données" sous forme textuelles directement genre une date sur une page du pdf, ou sous forme de métadonnées internes au document, exif par exemple pour les images, ou autre format pour un odt.
Il y a peut être de la place pour les métadonnées additionelles au niveau du FS, le gros problème étant à mon sens que les protocoles de transmissions genre ftp ne gèrent pas les métadonnées au niveau FS ...
# wget
Posté par Mildred (site web personnel) . Évalué à 2.
Les fichiers téléchargés par firefox viennent s'ajouter à la fin, mais avec wget, c'est au milieu.
# date externe
Posté par fcartegnie . Évalué à 2.
La date est une propriété relative au système, et dépend donc du système (à l'heure, pas à l'heure...): ce n'est qu'une information pour le système de fichiers. Le contenu même (entrées dans le fs) est indépendant et peut donc contenir sa vraie date.
Une copie est une écriture, du point de vue fs, donc c'est toujours cohérent que la copie ait une nouvelle date.
Quant au copy on write, sauf si c'est un copy on truncate, c'est aussi le moyen pour éviter la fragmentation. On a un fichier nouveau qui ne tiendra jamais dans les blocs contigus précédents alloués (FAT...). A partir de ext2, les fs linux utilisent la préallocation qui évite justement ce problème et permet de reserver qq blocs de plus pour le fichier. Peut être une raison, avec la croissance exponentielle des tailles, que personne n'y songe.
# C'est ce que je croyais aussi...
Posté par _PhiX_ . Évalué à 3.
...avant de constater que j'ai sur ma machine des fichiers datant de 1996, date à laquelle je n'avais ni accès à internet, ni PC.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.