2012-08-29 3 views
15

Dans mon script bash sur mac (snow léopard), j'ai un chemin et un nom de fichier, et j'ai besoin d'obtenir la date et l'heure modifiées de ce fichier. J'ai trouvé que je pouvais faire:
stat -f "%m" $MYFILEformaté date/heure du fichier sur mac bash?

Cependant, cela renvoie ce que je suppose est date/heure. J'ai besoin de la date/heure formatée: YYYYMMDDThhmmss. J'ai trouvé toutes sortes d'options (comme date) qui dépendent apparemment de GNU, ce que je n'ai pas sur mon mac.

Quelle est la méthode standard pour modifier la date et l'heure d'un fichier dans un format spécifié par l'utilisateur sur mac (BSD?) Bash. Ou au moins, une fonction de mise en forme date/heure que je peux transmettre le résultat de mon appel stat ci-dessus à.

Répondre

28

Il est en fait assez simple, mais assez différent de GNU date qu'il est loin d'être évident:

date -r $TIMESTAMP +%Y%m%dT%H%M%S 

Pour stat faire la mise en forme:

stat -f "%Sm" -t "%Y%m%dT%H%M%S" FILE 
+2

merci! Wow, j'aurais aimé l'avoir demandé il y a des heures! –

+1

Enfin un simple, droit au but, pas de réponse pompeuse et efficace à cette question! Je ne peux pas croire combien de personnes pensent que je me soucie vraiment d'apprendre tous les 1000 modificateurs de commandes de stat ou de date ... donnez-moi la commande qui fonctionne et c'est tout! MERCI BEAUCOUP! –

+0

wow, j'ai lu «man stat» et ne pouvait pas comprendre cela. – wisbucky