Réponses:
C'est une façon d'exprimer l'heure formatée par printf.
Le format est:
%(FORMAT)T
Où FORMATest défini par strftime(3).
Donc, pour obtenir l'heure de l'époque (temps en secondes depuis le 1970-01-01 00:00:00 UTC), nous avons besoin du strftime(3)format %s:
printf "%(%s)T\n"
Notez que vous devez également \nà la fin ajouter une nouvelle ligne car printf(contrairement à echo) ne l'ajoute pas par défaut.
Exemple:
$ printf "%(%s)T\n"
1454300377
$ printf "%(%Y-%m-%d)T\n"
2016-02-01
$ printf "%(%Y-%m-%d %H:%M:%S)T\n"
2016-02-01 10:20:27
Dans un souci d'exhaustivité, vous pouvez également utiliser la datecommande d'une strftime(3)manière formatée similaire pour obtenir l'heure:
$ date '+%s'
1454300542
$ date '+%Y-%m-%d' ## Short form: date -I
2016-02-01
$ date '+%Y-%m-%d %H:%M:%S'
2016-02-01 10:22:47
NOTE : Ce comportement est spécifique à bash's et kshest intégré dans la fonction printf, et ne fonctionne pas avec /usr/bin/printf, cshet zshbuilt-ins.
printf(1)page de manuel.
printfest une fonction intégrée ici (bien que celle externe ait le même comportement) .. vérifiez help printf..
printfun intégré?/usr/bin/printfsur Ubuntu 14.04 donne une erreur:printf: %(: invalid conversion specification. Si vous utilisezbash. Essayez laman bashdocumentation intégrée.