Introduzione
Il comando date
visualizza o imposta la data del sistema. È più comunemente usato per stampare la data e l'ora in diversi formati e calcolare le date future e passate.
In questo tutorial, tratteremo le basi del comando date.
Utilizzo del comando Linux date
La sintassi per il comando date
è la seguente:
date [OPTION]... [+FORMAT]
Per visualizzare l'ora e la data del sistema corrente utilizzando la formattazione predefinita, invocare il comando senza alcuna opzione:
date
L'output includerà il giorno della settimana, il mese, il giorno del mese, l'ora, il fuso orario e l'anno:
Sat Jun 3 12:21:45 CEST 2019
Opzioni di formattazione della data
L'output di date
può essere formattato con una sequenza di caratteri di controllo del formato preceduti da un segno +
. I controlli di formato iniziano con il simbolo %
e sono sostituiti dai loro valori.
date +"Year: %Y, Month: %m, Day: %d"
Il simbolo %Y
verrà sostituito con l'anno, %m
con il mese e %d
con il giorno del mese:
Year: 2019, Month: 05, Day: 03
Ecco un altro esempio:
date "+DATE: %D%nTIME: %T"
DATE: 05/03/19
TIME: 02:32:12
Di seguito è riportato un piccolo elenco di alcuni dei caratteri di formattazione più comuni:
%a
- Nome abbreviato del giorno della settimana abbreviato di Locale (ad es. Lun)%A
- Nome completo abbreviato del giorno della settimana di Locale (ad es. Lunedì)%b
- Nome abbreviato del mese abbreviato di Locale (ad es. Jan)%B
- Nome abbreviato del mese lungo di Locale (ad es. Gennaio)%d
- Giorno del mese (ad es. 01)%H
- Ora (00..23)%I
- Ora (01..12)%j
- Giorno dell'anno (001..366)%m
- Mese (01..12)%M
- Minuti (00..59)%S
- Secondo (00..60)%u
- Giorno della settimana (1..7)%Y
- Full year (e.g. 2019)
Per ottenere un elenco completo di tutte le opzioni di formattazione eseguite date --help
o man date
nel terminale.
L'opzione -d
ti consente di operare in una data specifica. È possibile specificare la data come stringa di date leggibile dall'uomo come di seguito:
date -d "2010-02-07 12:10:53"
Sun Feb 7 12:10:53 CET 2010
Utilizzando la formattazione personalizzata:
date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974
La stringa della data può anche accettare valori come "domani", "venerdì", "venerdì scorso", "venerdì prossimo", "mese prossimo", "settimana prossima" ... ecc.
date -d "last week"
Sat May 22 10:06:22 CEST 2019
Puoi anche utilizzare l'opzione stringa della data per mostrare l'ora locale per diversi fusi orari. Ad esempio, per mostrare l'ora locale per le 6:30 di lunedì prossimo sulla costa orientale australiana, digitare:
date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun 22 10:06:22 CEST 2019
Sostituire il fuso orario
Il comando date
utilizza il fuso orario di sistema predefinito . Per utilizzare un fuso orario diverso impostare la variabile di ambiente TZ
sul fuso orario desiderato.
Ad esempio, per mostrare l'ora di Melbourne, Aus, digitare:
TZ='Australia/Melbourne' date
Sat Jun 1 22:35:10 AEST 2019
Per elencare tutti i fusi orari disponibili, è possibile elencare i file nella directory /usr/share/zoneinfo
o utilizzare il comando timedatectl list-timezones
.
Convertitore di epoca
Il comando date
può essere utilizzato come convertitore di epoca. Epoch, o timestamp Unix, è il numero di secondi trascorsi dal 1 ° gennaio 1970 alle 00:00:00 UTC.
Per stampare il numero di secondi dall'epoca al giorno corrente utilizzare il controllo formato %s
:
date +%s
1575037004
Per convertire i secondi dall'epoca ad oggi, imposta i secondi come stringa di data con il prefisso @
:
date -d @1575037004
ven 29 nov 2019, 15:16:44, CET
Usare Date con altri comandi
Il comando date
viene utilizzato più frequentemente per creare nomi di file che contengono l'ora e la data correnti.
Il comando seguente creerà un file di backup Mysql nel seguente formato database_name-20190601.sql
mysqldump database_name > database_name-$(date +%Y%m%d).sql
È inoltre possibile utilizzare il comando date
negli script della shell. Nell'esempio seguente stiamo assegnando l'output di date
alla variabile date_now
:
date_now=$(date "+%F-%H-%M-%S")
echo $date_now
2019-06-01-15-02-27
Visualizzare l'ora dell'ultima modifica di un file
Il comando date
con l'opzione -r
mostra l'ora dell'ultima modifica di un file. Per esempio:
date -r /etc/hosts
mar 19 nov 2019, 10:12:12, CET
Se si desidera modificare il file timestamp, utilizzare il comando touch
.
Impostare l'ora e la data del sistema
L'impostazione manuale dell'ora e della data di sistema con il comando date
di solito non è consigliata poiché sulla maggior parte delle distribuzioni Linux l'orologio di sistema è sincronizzato usando i servizi ntp
o systemd-timesyncd
.
Tuttavia, se si desidera impostare manualmente l'orologio di sistema, è possibile utilizzare l'opzione --set=
. Ad esempio, se si desidera impostare la data e l'ora alle 17:30, 01 giugno 2019, digitare:
date --set="20190601 17:30"
Conclusione
Ormai dovresti avere una buona conoscenza di come usare il comando date di Linux.