Pourriez-vous s'il vous plaît laissez-moi savoir comment je peux changer la date de création d'un fichier dans Lion. Je me rends compte qu'il y a la commande touch-t mais cela ne fonctionne pas dans Lion. Quelques personnes ont mentionné une autre façon, mais je pense qu’elles ont écrit la solution en langage "codeur" plutôt qu'en langage profane - quelqu'un pourrait-il y répondre de la même manière qu'un profane peut l'exécuter?
Merci beaucoup pour votre aide.
Réponses:
touch -t
ne modifie normalement que les temps de modification et d'accès. L'heure de création ne change que si l'heure cible est antérieure à l'heure de création d'origine.SetFile -d
change toujours l'heure de création.SetFile fait partie du package d'outils de ligne de commande pouvant être téléchargé à partir de developer.apple.com/downloads ou à partir des préférences de Xcode.
la source
+%Y%m%d%H%M.%S
(remarquez le point entre les minutes et les secondes)CpCreationDate
dansfish
:SetFile -d (GetFileInfo -m $argv[1]) $argv[2]
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 un contrôle individuel avec un peu de soins et à l' utilisation de
touch
,SetFile
etchown
(ouchmod
). Pour voir cela, expérimentons et créons un nouveau fichier à partir de l'invite de commande#
:La première date indiquée correspond à l'heure du dernier accès (
atime
), la seconde à la dernière modification (mtime
), la troisième au dernier changement de statut (ctime
), la quatrième à l'heure de la création du fichier (naissance,Btime
), voirman lstat
.Pour modifier l'heure d'accès (
atime
) à une heure spécifiée, utilisez:Pour modifier l’heure de modification (
mtime
) et l’ heure de création du fichier (Btime
) sur une heure spécifiée, utilisez:Apparemment, cela met également automatiquement à jour l'heure du dernier changement d'état (
ctime
) avec l'heure système actuelle!Pour modifier uniquement le moment de création / naissance (
Btime
) à un moment donné, utilisez (comme proposé par d'autres ci-dessus):Pour modifier uniquement l'heure du dernier changement d'état (
ctime
) en fonction de l'heure système actuelle, utilisez par exemple:où
username
est le propriétaire du fichier (tel que rapporté parstat
ouls -l
). Cela ne change pas la propriété du fichier, mais accède à l'inode du fichier et l'enregistre comme heure de la dernière modification de statut. Malheureusement, il n'est pas possible de spécifier explicitement l'heure ici autrement qu'en changeant l'heure de l'ordinateur ...En résumé, pour pouvoir changer les quatre horodatages indépendamment, on peut utiliser (dans cet ordre pour les trois derniers):
touch -a -tCCYYMMDDHH.SS <file>
touch -m -tCCYYMMDDHH.SS <file>
SetFile -d "MM/DD/CCYY HH:MM:SS" <file>
chown username <file>
[revenir à la date système normale](Bien entendu, la réinitialisation de la date système peut ne pas être une opération sans risque, vous en avez été averti.)
la source
La commande en ligne de
touch
commande fonctionne dans Lion, mais vous avez besoin d’un peu d’information sur son utilisation.Tout d'abord, vous devez le saisir, ce n'est pas un utilitaire qui fonctionne graphiquement dans une fenêtre. L'endroit dans lequel vous tapez 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 l'avez démarré, vous obtenez une fenêtre de ligne de commande dans laquelle vous pouvez taper des commandes. Ce n'est pas parce que vous tapez que cela a quelque chose à voir avec le codage, mais pour quelqu'un de nouveau avec les commandes "à l'ancienne" du système d'exploitation, cela peut paraître un peu intimidant.
Ainsi, la commande s'appelle touch , et après la commande, vous pouvez passer divers paramètres, le seul requis étant le nom de fichier. En tapant ce qui suit, vous définissez la date de dernière modification du fichier sur l'heure actuelle:
Bien sûr, vous devrez peut-être d'abord trouver le fichier, ce qui nécessitera peut-être des commandes supplémentaires pour y accéder. la commande cd ou Change Directory aide ici:
Ou, vous pouvez simplement ajouter le chemin complet au fichier dans le cadre de la commande:
Une utilisation plus avancée de la commande tactile vous permet de spécifier l'heure que vous souhaitez définir, plutôt que d'utiliser l'heure d'exécution, de définir l'accès au lieu des heures de modification, etc. C'est ce que font des paramètres tels que -t et d'autres. Certains définissent le temps comme étant le temps d'un autre fichier, d'autres le définissent pour revenir en arrière ou avancer d'un temps égal à X ( voir ici pour plus de détails), par exemple:
Ce qui suit est tiré de cette page, qui est également une référence utile et un excellent exemple avec quelques conseils pour ceux qui ne sont pas à l'aise avec les emplacements de fichiers sur la ligne de commande.
Notez que cela ne modifiera les attributs de date de modification et de date de création que si votre fichier a été créé après la date que vous avez entrée. En effet, un fichier ne peut pas être modifié avant sa création. Si créé avant la date que vous avez définie, seule la date modifiée sera modifiée.
la source
touch
modifie la date de modification, pas la date de création du fichier.touch
des paramètres que vous avez indiqués ci-dessus a modifié la modification mais pas les dates de création de mon fichier de test.touch
est modifiée en fonction des arguments. Si vous indiquez une date de modification antérieure à la date de création du fichier, celle-ci sera automatiquement remplacée par la nouvelle valeur de date de modification, car un fichier ne peut pas être modifié avant sa création.creation
date. Je pouvais changeraccess
etmodified
date à une "date dans le passé", mais cela ne modifie pas la date de création. Consultez la page de manuel pour le toucher, il ne mentionne pas la date de création. Système de fichiers: Mac OS étendu (journalisé, crypté). UtilisationSetFile -d "$(GetFileInfo -m test.txt)" file.txt
a parfaitement fonctionné.Les grandes allusions ici, en particulier le dernier (de Lauri Ranta, a répondu le 21 août à 15h21). Perfekt!
J'utilise maintenant un simple flux de travail Automator pour modifier par lots plusieurs fichiers:
Le script shell est:
Cela fonctionne comme un charme.
la source
Le moyen le plus simple que j'ai trouvé était de créer un nouveau dossier, de copier tous les sous-dossiers du dossier grisé dans le nouveau dossier, et le tour est joué, le nouveau dossier n'est pas grisé. Vous pouvez même le faire dans le viseur.
la source