Je sais comment obtenir le mtime d'un fichier au format d'époque:
stat --format=%Y <file>
Mais je n'ai pas pu comprendre comment définir le mtime d'un fichier au format epoch. La page de manuel touch (1) semble accepter uniquement une valeur "d'horodatage" (format plus ou moins fixe qui utilise des mois, des jours, des heures, des minutes, etc.) ou une "chaîne de date lisible par l'humain au format principalement libre".
Existe-t-il un autre utilitaire que je devrais étudier?
Merci.
Réponses:
Au moins dans le monde GNU:
Comme avec
date
.la source
Avec
perl
:Cela changera le mtime de tous les fichiers dans
@ARGV
.(stat($_))[8]
est au moment du fichier.utime
peut recevoir la liste des fichiers, si vous ne vous souciez pas de changer l'heure, vous pouvez essayer:Remarque
utime
dépend de la bibliothèque d'exécution C et du système de fichiers utilisés. voir plus dansperldoc -f utime
etperldoc perlport
.la source
Avec la
touch
commande de GNU coreutils (c'est-à-dire sur Linux non intégré et Cygwin), consultez le manuel complet (généralement disponible localement au format info) pour la documentation des formats d'entrée de date . Les dates d'époque sont indiquées avec le préfixe@
:Cela fonctionne également avec BusyBox (au moins sur certains systèmes, cela peut dépendre des options de compilation).
Avec * BSD, je ne pense pas que vous puissiez le faire
touch
seul, mais vous pouvez appelerdate
pour formater l'heure de l'époque dans un format quitouch
accepte.POSIX manque notoirement de moyens pour manipuler les dates d'époque. Vous pouvez utiliser perl .
la source