Dans Mac OS X, il semble y avoir quatre horodatages différents associés à un fichier. Ces horodatages ne sont pas toujours mis à jour indépendamment les uns des autres, mais il est possible d'avoir un certain contrôle individuel avec un peu d'attention et l'utilisation de la commande touch
, SetFile
et chown
(ou chmod
). Pour le constater, expérimentons et créons un nouveau fichier depuis l'invite de commande #
:
# touch a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
La première date indiquée est la dernière heure d'accès ( atime
), le second est l'heure de la dernière modification ( mtime
), le troisième est le dernier changement d'état ( ctime
), le quatrième est l'heure de création du fichier (naissance, Btime
), voir man lstat
.
Pour modifier le temps d'accès ( atime
) à une durée d'utilisation déterminée :
# touch -a -t201412312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "May 19 00:11:14 2015" "May 19 00:11:46 2015" "May 19 00:11:14 2015" 4096 0 0 a.txt
Pour modifier le temps de modification ( mtime
) et l'heure de création du fichier ( Btime
) à une durée d'utilisation déterminée :
# touch -m -t201312312359.59 a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 2013" 4096 0 0 a.txt
Apparemment, cela met aussi automatiquement à jour l'heure du dernier changement de statut ( ctime
) à l'heure actuelle du système !
Pour modifier uniquement le moment de la création/naissance ( Btime
) à un moment donné, une utilisation (comme proposé par d'autres ci-dessus) :
# SetFile -d "12/31/1999 23:59:59" a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:12:19 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
Pour modifier uniquement l'heure du dernier changement d'état ( ctime
) à l'heure actuelle du système, par exemple :
# chown username a.txt
# stat a.txt
16777218 5969798 -rw-r--r-- 1 username staff 0 0 "Dec 31 23:59:59 2014" "Dec 31 23:59:59 2013" "May 19 00:13:45 2015" "Dec 31 23:59:59 1999" 4096 0 0 a.txt
où username
est le propriétaire du fichier (comme indiqué par stat
o ls -l
). Cela ne change pas la propriété du fichier, mais accède à l'inode du fichier et enregistre l'heure du dernier changement d'état. Malheureusement, il n'est pas possible de spécifier l'heure explicitement ici autrement qu'en changeant l'heure de l'ordinateur...
En résumé, pour pouvoir changer les quatre timestamps indépendamment, on peut utiliser (dans cet ordre pour les 3 derniers) :
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
- [définir la date du système]
chown username <file>
[retour à la date normale du système]
(Bien sûr, la réinitialisation de la date système n'est pas une opération sans risque, vous êtes prévenus).
0 votes
L'explication de "coder" que d'autres personnes ont écrite est probablement une référence à "touch". Il faut ouvrir un terminal, se rendre dans le dossier où se trouve le fichier et utiliser la commande touch pour modifier la date de création du fichier.
3 votes
Pour info, vous êtes sur la bonne ligne avec "touch-t", mais il y a un espace entre le h et le -. C'est "touch -t"