Dans cet article nous allons voir les principales commandes utilisant des dates ou des heures.
Affichage de la date courante :
date
Affichage de la date courante dans un format préalablement défini :
date "+%Y-%m-%dT%H:%M:%S%z" # Output: 2019-12-01T15:33:54+0200
Remarque : le symbole "+" précède le format de la date.
Les différents formats utilisables sont disponibles à cette addresse : https://man7.org/linux/man-pages/man1/date.1.html
Il est possible de fournir une date spécifique en entrée :
date -jf '%Y-%m-%d %H:%M:%S' '2017-05-10 13:40:01'
Il est enfin possible de manipuler la date :
date -jf %Y-%m-%dT%H:%M:%S%z +%Y-%m-%dT%H:%M:%S%z 2017-05-10T02:40:01+0500 # Formatage de la date en entrée, affichage identique en sortie, mais mise à niveau de la zone horaire.
date -v +1y # Ajoute 1 année à la date courante. -v pour "Adjust" sous UNIX
date -d "+1 years" # sous LINUX
Récupération du Timestamp Unix :
date +%s // 1654172212
Table d'exemple génériques :
Format/result | Command | Output
--------------------------------+----------------------------+------------------------------
YYYY-MM-DD | date -I | $(date -I)
YYYY-MM-DD_hh:mm:ss | date +%F_%T | $(date +%F_%T)
YYYYMMDD_hhmmss | date +%Y%m%d_%H%M%S | $(date +%Y%m%d_%H%M%S)
YYYYMMDD_hhmmss (UTC version) | date --utc +%Y%m%d_%H%M%SZ | $(date --utc +%Y%m%d_%H%M%SZ)
YYYYMMDD_hhmmss (with local TZ) | date +%Y%m%d_%H%M%S%Z | $(date +%Y%m%d_%H%M%S%Z)
YYYYMMSShhmmss | date +%Y%m%d%H%M%S | $(date +%Y%m%d%H%M%S)
YYYYMMSShhmmssnnnnnnnnn | date +%Y%m%d%H%M%S%N | $(date +%Y%m%d%H%M%S%N)
YYMMDD_hhmmss | date +%y%m%d_%H%M%S | $(date +%y%m%d_%H%M%S)
Seconds since UNIX epoch: | date +%s | $(date +%s)
Nanoseconds only: | date +%N | $(date +%N)
Nanoseconds since UNIX epoch: | date +%s%N | $(date +%s%N)
ISO8601 UTC timestamp | date --utc +%FT%TZ | $(date --utc +%FT%TZ)
ISO8601 UTC timestamp + ms | date --utc +%FT%T.%3NZ | $(date --utc +%FT%T.%3NZ)
ISO8601 Local TZ timestamp | date +%FT%T%Z | $(date +%FT%T%Z)
YYYY-MM-DD (Short day) | date +%F\(%a\) | $(date +%F\(%a\))
YYYY-MM-DD (Long day) | date +%F\(%A\) | $(date +%F\(%A\))
Est utilisée pour calculer le temps d'exécution d'une commande, exemple :
time ls # Output: ls 0,00s user 0,00s system 38% cpu 0,007 total
Est utiliser pour créer un fichier vide ou pour mettre à jour la date d'un fichier existant, sans le modifier.
touch monFichierExistant # Met à jour seulement la date de dernière modification
touch monFichierNouveau # Créée le fichier car absent
>> monFichierNouveau # cette commande est équivalent au touch (notez bien qu'il y a deux ">")
Elle permet d'exécuter un script une seule fois à une date prédéfinie.
at 2:30 am Friday < at-script.sh
Affiche un calendrier mensuel :
cal
Attend pendant X secondes. Utiles pour les scripts en attendant un évènement, pour pour ne pas surcharger le serveur lors d'une boucle infinie.
sleep 7 # attend 7 secondes
Remarque : La précision n'est pas assez exacte pour une utilisation ayant des exigences critique en terme de temps.
Identique à la dernière commande (sleep), sauf qu'a la place de mettre des secondes elle prend en entrée des micro secondes.
usleep 1000 # attend 1000 micro-seconde
Remarque : Comme pour la commande sleep, la précision n'est pas assez exacte pour une utilisation ayant des exigences critique en terme de temps.
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos