Tant que vous êtes le propriétaire du fichier (ou de la racine), vous pouvez modifier l'heure de modification d'un fichier à l'aide de la touch
commande suivante:
touch filename
Par défaut, l'heure de modification du fichier est définie sur l'heure actuelle, mais il existe un certain nombre d'indicateurs, tels que l' -d
indicateur permettant de choisir une date particulière. Ainsi, par exemple, pour définir un fichier comme étant modifié deux heures avant le présent, vous pouvez utiliser les éléments suivants:
touch -d "2 hours ago" filename
Si vous souhaitez plutôt modifier le fichier par rapport à son heure de modification existante, procédez comme suit:
touch -d "$(date -R -r filename) - 2 hours" filename
Si vous souhaitez modifier un grand nombre de fichiers, vous pouvez utiliser les éléments suivants:
find DIRECTORY -print | while read filename; do
# do whatever you want with the file
touch -d "$(date -R -r "$filename") - 2 hours" "$filename"
done
Vous pouvez modifier les arguments pour find
ne sélectionner que les fichiers qui vous intéressent. Si vous souhaitez uniquement mettre à jour les temps de modification des fichiers par rapport à l'heure actuelle, vous pouvez le simplifier pour:
find DIRECTORY -exec touch -d "2 hours ago" {} +
Ce formulaire n'est pas possible avec la version relative du fichier, car il utilise le shell pour former les arguments touch
.
En ce qui concerne le moment de la création, la plupart des systèmes de fichiers Linux ne gardent pas trace de cette valeur. Il y a un ctime
associé à des fichiers, mais il trace quand les métadonnées du fichier ont été modifiées pour la dernière fois. Si les autorisations du fichier ne sont jamais modifiées, il peut arriver que la création soit conservée, mais il s’agit d’une coïncidence. Changer explicitement le temps de modification du fichier compte comme un changement de métadonnées, aura donc également pour effet secondaire de mettre à jour le fichier ctime
.
touch -d "2 hours ago" /path/*.txt
par exemple.ctime
n'est pas possible de manière standard.ctime
heure de changement des métadonnées proviennent de POSIX. Je ne sais pas si les fragments de shell de ma réponse fonctionneraient avec des utilitaires de shell POSIX stricts. Mais ils travaillent certainement sur Ubuntu, qui est le contexte des réponses sur ce site.gtouch
viabrew install coreutils
.Merci pour l'aide. Cela a fonctionné pour moi:
Dans le terminal, accédez au répertoire pour la modification de la date. Puis tapez:
Vous verrez un ">" après avoir appuyé sur enter, sauf pour la dernière fois -> "done".
Remarque: Vous voudrez peut-être changer "201203101513"
"201203101513" = est la date souhaitée pour tous les fichiers de ce répertoire.
Voir ma page web
la source
.ss
où ss est le nombre de secondes. (Remarque: cela ne semble pas contrôler les minutages inférieurs à la seconde, tels que les nanosecondes ou les millisecondes, qui pour moi ne sont apparus que comme des zéros; cependant, cette différence était permise pour mon cas d'utilisation.)Le moyen le plus simple - accéder et modifier sera le même:
Où:
Si vous souhaitez utiliser,
NOW
supprimez simplement-t
l'horodatage.Pour vérifier qu'ils sont tous les mêmes:
stat fileName.ext
Voir: touch man
la source
touch
indicateurs n'aboutit à un résultat correct. La date de modification est ajustée, mais elle a changé et la date d'accès est en fait changée pour MAINTENANTchanged
heure et l'modified
horodatage?Touch peut référencer la date d'un fichier tout seul, pas besoin d'appeler
date
ou d'utiliser la substitution de commande. Voici un peu de la page d'informations de touch:Par exemple, pour ajouter 8 heures à la date d'un fichier (nom du fichier entre
file
guillemets juste en cas d'espaces, etc.):Utiliser une boucle sur tous les fichiers du répertoire en cours:
J'ai entendu dire qu'il est plus sûr d' utiliser
*
et de laisserfor
choisir les noms de fichiers lui-même , mais que cela devrait gérer la plupart des caractères fous comme les nouvelles lignes, les espaces, les guillemets, les barres obliques inverses dans un nom de fichier. (PS. Essayez de ne pas utiliser des caractères fous dans les noms de fichiers).find -print0 | xargs -0 touch ...
Par exemple, pour rechercher tous les fichiers
thatdir
dont les noms de fichiers commencent par uns
et ajouter un jour à l'horodatage modifié de ces fichiers, utilisez:la source
Ce petit script fonctionne au moins pour moi
la source
Cela fait longtemps que je n'ai pas écrit de programme Unix, mais j'ai accidentellement réglé l'année sur une série de photos de Noël et je savais que si je ne changeais pas la date de 2015 à 2014, ce serait un problème plus tard. .
C’est peut-être une tâche facile, mais je n’ai trouvé aucun moyen simple de le faire.
J'ai modifié un script trouvé ici, qui servait à l'origine à modifier la date de moins d'un mois.
Voici le script original:
Voici mon script modifié qui a forcé la date à l'année "2014":
Je réalise maintenant que j'aurais pu faire une version plus générique:
Pour utiliser ce fichier, vous devez l’écrire et
éxécuter:
fn = votre-nom-de-fichier-qui-est-votre-commande
Exemple
changera la date de moins un an dans le répertoire où vous vous trouvez.
la source
il suffit de changer la date et l'heure dans les paramètres. puis enregistrez votre fichier, il change automatiquement
la source