Il comando date si trova nella shell Bash, che è la shell predefinita nella maggior parte delle distribuzioni Linux e persino in macOS. Questo tutorial mostra come controllare la data sulla riga di comando e come utilizzarla negli script della shell per fare di più che stampare semplicemente l’ora.
Eseguire il comando date per visualizzare queste informazioni. Stampa la data e l’ora correnti per il tuo fuso orario:
date
La formattazione predefinita sembra un po ‘sciocca. Perché l’anno non viene stampato dopo il mese e il giorno, invece di essere taggato alla fine, dietro il fuso orario? Non temere: se è il controllo sul formato dell’output che desideri, la data lo consegna a picche. Ci sono più di 40 opzioni che puoi passare fino ad oggi per istruirlo a formattare il suo output esattamente come desideri.
Per utilizzare una qualsiasi delle opzioni, digitare data, uno spazio, un segno più + e l’opzione che include il segno di percentuale iniziale. L’opzione% c (data e ora nel formato locale) fa sì che la data e l’ora vengano stampate nel formato normalizzato associato alla propria lingua. La tua locale è impostata dalle informazioni geografiche e culturali fornite quando hai installato il tuo sistema operativo. Il locale governa cose come il simbolo della valuta, le dimensioni della carta, il fuso orario e altre norme culturali.
date +%c
L’anno appare ora in una posizione più naturale nella produzione.
Puoi passare diverse opzioni fino ad oggi contemporaneamente. Una sequenza di opzioni è chiamata stringa di formato. Per vedere il nome del giorno (% A), il giorno del mese (% d) e il nome del mese (% B), usa questo comando:
date +%A%d%B
Ha funzionato, ma è brutto. Nessun problema, possiamo includere spazi purché racchiuda l’intera stringa di formato tra virgolette. Notare che il + va al di fuori delle virgolette.
date +"%A %d %B"
Puoi aggiungere testo alla stringa di formato, in questo modo:
date +"Today is: %A %d %B"
Scorrimento su e giù per la data pagina man cercare l’opzione che desideri diventa presto faticoso. Abbiamo suddiviso le opzioni in gruppi per aiutarti a orientarti più facilmente.
Sommario:
Opzioni per visualizzare la data e l’ora
% c: stampa la data e l’ora nel formato per la tua locale, incluso il fuso orario.
Opzioni per visualizzare la data
% D: stampa la data nel formato mm / gg / aa.
% F: stampa la data nel formato aaaa-mm-gg.
% x: stampa la data nel formato della tua locale.
Opzioni per visualizzare il giorno
% a: stampa il nome del giorno, abbreviato in lunedì, martedì, mercoledì, ecc.
% A: stampa il nome completo del giorno, lunedì martedì, mercoledì, ecc.
% u: stampa il numero del giorno della settimana, dove lunedì = 1, martedì = 2, mercoledì = 3 e così via.
% w: stampa il numero del giorno della settimana, dove domenica = 0, lunedì = 1, martedì = 2, ecc.
% d: stampa il giorno del mese, con uno zero iniziale (01, 02… 09) se necessario.
% e: stampa il giorno del mese, con uno spazio iniziale (“1”, “2” … “9”) se necessario. Notare che gli apostrofi non vengono stampati.
% j: stampa il giorno dell’anno, con un massimo di due zeri iniziali, se necessario.
Opzioni per visualizzare la settimana
% U: stampa il numero della settimana dell’anno, considerando la domenica come primo giorno della settimana. Ad esempio, la terza settimana dell’anno, la ventesima settimana dell’anno, ecc.
% V: stampa il numero della settimana ISO dell’anno, considerando il lunedì come primo giorno della settimana.
% W: numero della settimana dell’anno, considerando il lunedì come primo giorno della settimana.
Opzioni per visualizzare il mese
% bo% h: stampa il nome del mese abbreviato in gennaio, febbraio, marzo, ecc.
% B: stampa il nome completo del mese, gennaio, febbraio, marzo, ecc.
% m: stampa il numero del mese, con uno zero iniziale se richiesto 01, 02, 03… 12.
Opzioni per visualizzare l’anno
% C: stampa il secolo senza l’anno. Nel 2019 ne stamperebbe 20.
% y: stampa l’anno come due cifre. nel 2019 ne stamperà 19.
% Y: stampa l’anno in quattro cifre.
Opzioni per visualizzare l’ora
% T: stampa l’ora come HH: MM: SS.
% R: stampa l’ora e i minuti come HH: MM senza secondi, utilizzando l’orologio a 24 ore.
% r: stampa l’ora in base alle impostazioni locali, utilizzando l’orologio a 12 ore e un indicatore am o pm.
% X: stampa l’ora in base alle impostazioni locali, utilizzando l’orologio a 24 ore. Presumibilmente. Notare che durante il test questa opzione si è comportata esattamente come% r, come mostrato di seguito. Su una macchina Linux configurata per le impostazioni internazionali del Regno Unito e impostata su GMT, ha stampato l’ora, utilizzando l’orologio a 24 ore senza indicatore AM o PM, come previsto.
Opzioni per visualizzare l’ora
% H: stampa l’ora 00, 01, 02… 23.
% I: stampa l’ora utilizzando l’orologio a 12 ore, 00, 01, 02… 12, con uno zero iniziale se necessario.
Opzioni per visualizzare i minuti
% M: stampa i minuti, 01, 02, 03… 59, con uno zero iniziale se necessario.
Opzioni per visualizzare i secondi
% s: stampa il numero di secondi da 1970-01-01 00:00:00, l’inizio di Unix Epoch.
% S: stampa i secondi, 01, 02, 03… 59, con uno zero iniziale se necessario.
% N: stampa i nanosecondi.
Opzioni per visualizzare le informazioni sul fuso orario
% z: stampa la differenza di fuso orario tra il fuso orario e UTC.
%: z: stampa la differenza di fuso orario tra il fuso orario e UTC, con un: tra le ore e i minuti. Nota: tra il segno% e z.
% :: z: stampa la differenza di orario tra il fuso orario e UTC, con: tra le ore, i minuti e i secondi. Notare il simbolo :: tra il segno% e z.
% Z: stampa il nome alfabetico del fuso orario.
Opzioni relative alla formattazione
% p: stampa l’indicatore AM o PM in maiuscolo.
% P: stampa l’indicatore di mattina o di pomeriggio in minuscolo. Nota la stranezza con queste due opzioni. Una p minuscola fornisce un output in maiuscolo, una P maiuscola fornisce un output in minuscolo.
% t: stampa una scheda.
% n: stampa una nuova riga.
Opzioni per modificare altre opzioni
Questi modificatori possono essere inseriti tra la% e la lettera di opzione di altre opzioni per modificarne la visualizzazione. Ad esempio,% -S rimuove lo zero iniziale per i valori dei secondi a una cifra.
-: un singolo trattino impedisce la spaziatura interna pari a zero su valori a una cifra.
_: un singolo trattino basso aggiunge spazi iniziali per valori a una cifra.
0: fornisce zeri iniziali per valori a una cifra.
^: Utilizza le maiuscole, se possibile (non tutte le opzioni rispettano questo modificatore).
#: Usa l’opposto del caso predefinito per l’opzione, se possibile (non tutte le opzioni rispettano questo modificatore).
Altri due bei trucchi
Per ottenere l’ora dell’ultima modifica di un file, utilizzare l’opzione -r (riferimento). Nota che questo utilizza un – (trattino) invece di un segno% e non richiede un segno +. Prova questo comando nella tua cartella Inizio:
date -r .bashrc
L’impostazione TZ consente di modificare il fuso orario per la durata di un singolo comando.
TZ=GMT date +%c
Utilizzo della data negli script
Abilitare uno script della shell Bash per stampare l’ora e la data è banale. Crea un file di testo con il seguente contenuto e salvalo come gd.sh.
#!/bin/bash TODAY=$(date +"Today is %A, %d of %B") TIMENOW=$(date +"The local time is %r") TIME_UK=$(TZ=BST date +"The time in the UK is %r") echo $TODAY echo $TIMENOW echo $TIME_UK
Digitare il seguente comando per impostare le autorizzazioni di esecuzione e rendere eseguibile lo script.
chmod +x gd.sh
Esegui lo script con questo comando:
./gd.sh
Possiamo usare il comando date per fornire un timestamp. Lo script mostrato creerà una directory con il timestamp come nome. Copierà quindi tutti i file di testo dalla cartella corrente al suo interno. Eseguendo periodicamente questo script possiamo acquisire un’istantanea dei nostri file di testo. Nel tempo creeremo una serie di cartelle con diverse versioni dei nostri file di testo.
Nota che questo non è un robusto sistema di backup, è solo a scopo illustrativo.
Crea un file di testo con il seguente contenuto e salvalo come snapshot.sh.
#!/bin/bash # obtain the date and time date_stamp=$(date +"%F-%H-%M-%S") # make a directory with that name mkdir "$date_stamp" # copy the files from the current folder into it cp *.txt "$date_stamp" # all done, report back and exit echo "Text files copied to directory: "$date_stamp
Digitare il seguente comando per impostare le autorizzazioni di esecuzione e rendere eseguibile lo script.
chmod +x snapshot.sh
Esegui lo script con questo comando:
./snapshot.sh
Vedrai che è stata creata una directory. Il suo nome è la data e l’ora in cui lo script è stato eseguito. All’interno di quella directory ci sono copie dei file di testo.
Dato un po ‘di pensiero e creatività, anche l’umile comando della data può essere utilizzato in modo produttivo.