Pourriez-vous sil vous plaît me dire comment je peux changer la date de création dun fichier dans Lion. Je me rends compte quil y a la commande touch-t mais cela ne fonctionne pas dans Lion. Quelques personnes ont mentionné une autre façon, mais je pense quelles « ont écrit la solution en langage » codeur « plutôt quen langage profane – quelquun pourrait-il y répondre dune manière quun profane peut exécuter?

Merci beaucoup pour votre aide.

Commentaires

  • Le codeur  »  » lexplication sur laquelle dautres personnes ont écrit est probablement une référence à  » touch « . Vous ‘ si vous devez ouvrir un Terminal, accédez au dossier où se trouve le fichier puis utilisez la commande tactile pour modifier la date de création du fie ‘.
  • FWIW Vous êtes sur la bonne ligne avec  » touch-t « , mais il y a un espace entre le h et le -. Il ‘  » toucher -t  »

Réponse

touch -t ne modifie normalement que les heures de modification et daccès. Il ne modifie lheure de création que si lheure cible est antérieure à lheure de création dorigine.

touch -t 199912312359 file.txt touch -t $(date -jf %FT%T 1999-12-31T23:59:59 +%Y%m%d%H%M%S) file.txt 

SetFile -d change toujours lheure de création.

SetFile -d "12/31/1999 23:59:59" file.txt SetFile -d "$(GetFileInfo -m test.txt)" file.txt 

SetFile fait partie du package doutils de ligne de commande qui peut être téléchargé depuis le développeur .apple.com / downloads ou à partir des préférences de Xcode.

Commentaires

  • -m pour changer lheure de modification.
  • Dans Yosemite, le toucher ma obligé à utiliser le format +%Y%m%d%H%M.%S (notez le point entre les minutes et les secondes)
  • Jai écrit une fonction appelée CpCreationDate dans fish : SetFile -d (GetFileInfo -m $argv[1]) $argv[2]

Réponse

Sous 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 on peut avoir Contrôle ual avec un peu de soin et avec lutilisation de touch, SetFile et chown (ou chmod). Pour voir cela, faisons des essais et créons un nouveau fichier à partir de linvite 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 

Le la première date indiquée est lheure du dernier accès (atime), la seconde est lheure de la dernière modification (mtime), la troisième est le dernier changement détat ( ctime), le quatrième correspond à la création du fichier (naissance, Btime), voir man lstat.

Pour modifier le temps daccès (atime) à une utilisation du temps spécifié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 lheure de modification (mtime) et lheure de création du fichier (Btime) à une heure spécifiée utilisez:

# 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 également à jour automatiquement lheure du dernier changement de statut (ctime) en lheure système actuelle!

Pour modifier uniquement lheure de création / naissance (Btime) à une heure donnée, utilisez (comme pr ouvert par dautres 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 lheure du dernier changement de statut (ctime) en utilisation de lheure système actuelle, 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 

username est le propriétaire du fichier (comme indiqué par stat ou ls -l). Cela ne change pas la propriété du fichier, mais accède à l inode du fichier et l enregistre comme une heure du dernier changement d état. Malheureusement, il nest pas possible de spécifier lheure explicitement ici autrement quen changeant lheure de lordinateur …

En résumé, pour pouvoir changer les quatre horodatages indépendamment, on peut utiliser (dans ce commande pour les 3 derniers):

  1. touch -a -tCCYYMMDDHH.SS <file>
  2. touch -m -tCCYYMMDDHH.SS <file>
  3. SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
  4. [définir la date système] chown username <file> [revenir à la date système normale]

(Bien sûr, la réinitialisation de la date système peut ne pas être une opération sans risque, vous avez été averti.)

Commentaires

  • +1 Merci pour cette réponse super détaillée. Cela a résolu tous mes problèmes.
  • Parfois, je me retrouve avec des photos qui ont des dates incorrectes car ma GoPro se réinitialise. Je transfère ces photos sur mon Mac et fixe la date selon ces instructions, mais lorsque je transfère ces photos sur mon iPhone, la date est toujours erronée. Le seul moyen que jai ‘ trouvé pour résoudre ce problème est dutiliser un éditeur EXIF iOS. Y a-t-il encore un autre attribut de date caché quelque part?
  • @Bowen: Les dates auxquelles vous faites référence sur une photo font partie des données du format de fichier photo lui-même. La date de création, la date de modification etc. des fichiers mentionnés ci-dessus sont celles gérées par le système de fichiers de votre système dexploitation, elles sont maintenues et mises à jour séparément des données contenues dans le fichier.

Réponse

La commande de ligne de commande touch fonctionne dans Lion, mais vous avez besoin dun peu dinformations sur la façon de utilisez-le.

Tout dabord, vous devez le saisir, ce nest pas un utilitaire qui fonctionne graphiquement dans une fenêtre. Lendroit où vous le saisissez est une application appelée Terminal . Vous pouvez le trouver dans votre dossier Utilitaires ou utiliser la recherche Spotlight pour le trouver.

Une fois que vous le lancez, vous obtenez une fenêtre de ligne de commande dans laquelle vous pouvez taper des commandes. Ce nest pas parce que vous tapez  » Cela veut dire que cela a quelque chose à voir avec le codage, mais pour quelquun qui découvre les commandes du système dexploitation « à lancienne », cela peut sembler un peu intimidant.

Donc, la commande sappelle touch , et après la commande, vous pouvez passer divers paramètres, le seul requis étant le nom du fichier. Taper ce qui suit définira la dernière date de modification du fichier sur lheure actuelle:

touch filename 

Bien sûr, vous devrez peut-être dabord trouver le fichier, ce qui pourrait nécessitent des commandes supplémentaires pour y accéder. la commande cd ou Changer de répertoire vous aide ici:

cd ~/Desktop/files/PDFs touch filename 

Ou, vous pouvez simplement ajouter le chemin daccès au fichier dans le cadre de la commande:

touch ~/Desktop/files/PDFs/filename 

Une utilisation plus avancée de la commande tactile vous permet de spécifier lheure que vous souhaitez définir, plutôt que dutiliser lheure à lexécution, définissez laccès au lieu des heures de modification, etc. Cest ce que font des paramètres comme -t et dautres. Certains définissent lheure comme celle dun autre fichier, dautres le définissent pour reculer ou avancer dans le temps de X montant, ( voir ici pour plus de détails) , par exemple:

touch -d "1 May 2005 10:22" file8 

Ce qui suit est de cette page qui est également référence utile, et un excellent exemple avec quelques conseils pour ceux qui ne sont pas à laise avec lemplacement des fichiers sur la ligne de commande

Notez que cela changera à la fois la date de modification et la date de création des attributs uniquement si votre fichier a été créé après le la date que vous entrez. En effet, un fichier ne peut pas être modifié avant sa création. Si elle est créée avant la date que vous avez définie, seule la date de modification sera modifiée.

Comment modifier lattribut de date de création dun fichier?

  1. Ouvrez lapplication Terminal (/Applications/Utilities/Terminal.app) ou si vous préférez utiliser iTerm.

  2. Saisissez ceci dans le terminal (sans appuyer sur entrée / retour) en insérant la date au format YYYYMMDDhhmm:

    touch -t 201212211111 
  3. Ouvrez une fenêtre du Finder et localisez le fichier que vous souhaitez modifier et faites-le glisser et déposez-le dans la fenêtre du Terminal, il insérera ensuite lemplacement du fichier en utilisant la terminologie de la ligne de commande. Voici un exemple de ce qui doit être saisi dans le terminal à ce stade:

    touch -t 201212211111 /Volumes/Mac\ HD/Pictures/somefile.jpg 

    201212211111 dans lexemple ci-dessus représente « 21 décembre 2012 11:11 AM

Commentaires

  • Mais touch modifie la date de modification, pas la date de création du fichier.
  • Il peut faire les deux. Dépend des paramètres.
  • Lutilisation de touch avec les paramètres que vous avez indiqués ci-dessus a changé la modification mais pas les dates de création de mon fichier de test.
  • @Daniel Vous avez probablement obtenu votre réponse, mais par souci dexhaustivité, touch modifie la date de création en fonction des arguments. Si vous indiquez une date de modification antérieure à la date de création du fichier ‘, la date de création passera automatiquement à la nouvelle valeur de date de modification, car un fichier ne peut pas être modifié avant sa création .
  • Jai juste essayé ceci sur Sierra et toucher définitivement ne change pas la date creation. Jai pu changer les dates access et modified en une date  » dans le passé « , mais il na pas modifié la date de création. Vérifiez la page de manuel pour toucher, elle ne mentionne pas la date de création. Système de fichiers: Mac OS étendu (journalisé, crypté). Lutilisation de SetFile -d "$(GetFileInfo -m test.txt)" file.txt a parfaitement fonctionné.

Réponse

De grands conseils ici , en particulier le dernier (de Lauri Ranta, a répondu le 21 août à 15h21). Perfekt!

Jutilise maintenant un simple flux de travail Automator pour modifier par lots plusieurs fichiers:

  1. Obtenir les éléments sélectionnés du Finder
  2. Exécuter le script Shell, « Passer lentrée : comme arguments « 

Le script shell est:

for f in "$@" do SetFile -d "$(GetFileInfo -m "$f")" "$f" done 

Cela fonctionne comme un charme.

Réponse

Le moyen le plus simple que jai trouvé était de créer un nouveau dossier, de copier tous les sous-dossiers du dossier grisé dans le nouveau dossier, et voilà, le nouveau dossier nest pas grisé. Vous pouvez même le faire dans le Finder.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *