OSX - Comment obtenir la création & modification d'un fichier à partir de la ligne de commande
Lors de la résolution de certains puzzle de programmation, je voulais voir combien de temps il m'a fallu pour écrire une solution au problème. Pour ce faire, je pensais que ça serait une bonne idée de comparer la date de création du fichier avec la dernière date de modification.
Dans le terminal (OSX), j'ai essayé la commande suivante et fut surpris de voir le même jour, trois fois de suite:
stat my_file.py
16777220 10280844 -rw-r--r-- 1 username staff 0 7214 \
"Dec 5 08:32:39 2015" \
"Dec 5 08:32:39 2015" \
"Dec 5 08:32:39 2015" \
"Dec 5 08:32:39 2015" 4096 16 0 my_file.py
La façon dont j'ai créé ensuite modifié le fichier:
touch my_file.py
vim my_file.py # <- modify some content
stat my_file.py
Aucune idée sur la façon d'obtenir ces deux dates à partir de la ligne de commande?
Précisions: je ne veux pas le temps, le temps d'exécution du script.
MODIFIER : La question a été avec vim modification de la date de création sur enregistrer, la accepté de répondre encore répond à la question en profondeur pour ceux qui sont intéressés.
time command
?Ce n'est pas la question. Je vais essayer d'obtenir la création et la date de dernière modification du script. Pas de mesurer le temps d'exécution.
... afin de "voir combien de temps il m'a fallu pour résoudre le problème".
^ A changé pour "combien de temps il m'a fallu pour écrire une solution au problème".
Est-ce que vous souhaitez?:
stat -f "%B %N" my_file.py
et stat -c "%y %N" my_file.py
?OriginalL'auteur Mr_Pouet | 2015-12-06
Vous devez vous connecter pour publier un commentaire.
stat
rapports de la norme Unix dates, heure du dernier accès, la date de dernière modification, et de l'inode de changement de temps (qui est souvent confondu avec le temps de création). Mac OS X assure aussi l'heure de création de fichier, et il est accessible à l'aide de laGetFileInfo
commande:Voici un exemple plus complet:
Notez que l'utilisation de
vim
pour tester cela peut être trompeur, carvim
inscrivez votre fichier modifié dans un nouveau fichier temporaire, puis renommez l'ancien et le nouveau, de sorte que le moment de la création sera mis à jour lorsque le fichier a été écrit. Voir ce post pour une solution de contournement, je suis venu avec.Tu es la bienvenue, heureux de vous aider!
Donc ils ont enlevé puis le remettre? J'ai Snow Leopard (10.6) et Yosemite (10.10) machines et il est disponible sur ces deux (vous pouvez avoir Xcode installé pour qu'il soit disponible, je ne me souviens pas bien sûr et n'ont pas de systèmes où j' ne pas Xcode installé 🙂 ).
Je pense que
mdls
est le remplacement, mais il semble consulter le magasin de métadonnées, et non le fichier lui-même, donc, si le magasin de métadonnées est hors de synchronisation ou n'a pas ramassé les modifications apportées au fichier pourtant, il semble que comme il peut donner des résultats incorrects.En fait
stat
sur Mac OSX peut montrer la Création/l'heure de Naissance. Vous juste ne pouvez pas utiliserstat -x
. Plaine anciensstat <file>
montrera 4 dates en une seule ligne: atime, mtime, ctime, Btime. Ou vous pouvez faire plus joli formatage, voir stackoverflow.com/a/47343029OriginalL'auteur blm
Comme vous l'avez déjà identifié, le vrai coupable était que
vim
réinitialise tous les 4 datetime timbres.Mais pour répondre à votre question de départ, voici une
stat
mise en forme pour Mac OSX qui montrera clairement le 4 datetime timbres (y compris la Création ou à la Naissance et à Modifier):stat -f "%SB" file.txt
affichera le fichier est l'heure de naissance. Vous êtes vraiment cool.Donc, je pense insérer
alias btime='stat -f "%SB"'
en~/.bash_profile
permettra de simplifier votre réponse beaucoup.OriginalL'auteur wisbucky