Úvod
Linux date
zobrazí a nastaví systémové datum a čas. Tento příkaz také umožňuje uživatelům tisknout čas v různých formátech a vypočítat budoucí a minulá data.
Čtěte dále a zjistěte, jak používat date
příkaz v Linuxu.

Předpoklady
- Systém se systémem Linux
- Uživatelský účet s oprávněními root
- Přístup k oknu terminálu/příkazovému řádku
Linux date syntaxe příkazu
Syntaxe pro date
příkaz je:
date [option]... [+format]
Jak používat příkaz date v Linuxu
Chcete-li zobrazit aktuální systémový čas a datum, zadejte date
příkaz:
date

Výstup zobrazuje den v týdnu, den v měsíci, měsíc, rok, aktuální čas a časové pásmo. Ve výchozím nastavení date
příkaz je nastaven na časové pásmo operačního systému.
-d
možnost umožňuje uživatelům pracovat v určité datum. Můžeme například zadat následující příkaz:
date -d "2000-11-22 09:10:15"

Můžete použít --date
příkaz k zobrazení daného řetězce data ve formátu data. Tento příkaz neovlivňuje skutečné hodnoty data a času systému a vytiskne pouze požadované datum. Například:
date --date="09/10/1960"

Možnosti formátu příkazu data v Linuxu
Chcete-li formátovat date
na výstupu příkazu můžete použít řídicí znaky, kterým předchází +
podepsat. Ovládací prvky formátu začínají % symbol a jsou nahrazeny svými aktuálními hodnotami.
Zde %Y znak je nahrazen aktuálním rokem, %m s měsícem a %d se dnem v měsíci:
date +"Year: %Y, Month: %m, Day: %d"

Zde jsou další dva příklady formátování:
date "+DATE: %D%nTIME: %T"

date +"Week number: %V Year: %y"

Toto jsou nejběžnější formátovací znaky pro date
příkaz:
%D
– Zobrazit datum jako mm/dd/rr%Y
– Rok (např. 2020)%m
– Měsíc (01-12)%B
– Dlouhý název měsíce (např. listopad)%b
– Krátký název měsíce (např. Nov)%d
– Den v měsíci (např. 01)%j
– Den v roce (001-366)%u
– Den v týdnu (1–7)%A
– Celý název dne v týdnu (např. pátek)%a
– Krátký název dne v týdnu (např. pá)%H
– Hodina (00-23)%I
– Hodina (01-12)%M
– Minuta (00-59)%S
– Druhý (00-60)
Chcete-li zobrazit všechny možnosti formátování, spusťte date --help
nebo příkaz man man date
ve vašem terminálu.
Nastavit nebo změnit datum v systému Linux
Chcete-li změnit systémové hodiny ručně, použijte příkaz set. Chcete-li například nastavit datum a čas na 17:30, 13. května 2010 , zadejte:
date --set="20100513 05:30"

Většina distribucí Linuxu má systémové hodiny synchronizované pomocí ntp
nebo systemd-timesyncd
služby, takže buďte opatrní při ručním nastavování hodin.
Zobrazit minulá data
Použijte --date
možnost zobrazení minulých dat v Linuxu. date
příkaz přijímá hodnoty jako "tomorrow"
, "Friday"
, "last Friday"
, "next Friday"
, "next week"
a podobně. Pro tisk minulých dat tedy použijte následující řetězce::
date --date="2 year ago"

date --date="yesterday"

date --date="10 sec ago"

Zobrazit budoucí data
--date
možnost může také zobrazit budoucí data. Stejně jako u minulých dat můžete pro tisk nadcházejících dat zadat řetězce:
date --date="next monday"

date --date="4 day"

date --date="tomorrow"

Zobrazit řetězec data na řádku souboru
--file
volba vytiskne řetězec data přítomný na každém řádku souboru. Na rozdíl od --date
možnost, --file
může prezentovat více datových řetězců na každém řádku.
Toto je syntaxe pro --file
příkaz:
date --file=file_name.txt
Zde používáme příkaz cat k přidání dat do souboru a poté je vytiskneme příkazem date:

Zobrazit časové razítko poslední úpravy souboru data
Když použijete -r
možnost, date
příkaz vypíše čas poslední úpravy souboru. Například následující příkaz vytiskne poslední změnu souboru hosts:
date -r /etc/hosts

Přepsat časové pásmo
Ve výchozím nastavení date
používá časové pásmo definované v /etc/localtime
. Chcete-li v prostředí použít jiné časové pásmo, nastavte TZ
proměnnou na požadované časové pásmo.
Chcete-li například přepnout na newyorský čas, zadejte:
TZ='America/New_York' date

Zadejte date
příkaz k návratu systému do výchozího časového pásma. Chcete-li zobrazit všechna dostupná časová pásma, použijte timedatectl list-timezones
příkaz.
date
příkaz může také zobrazit místní čas pro jiné časové pásmo. Chcete-li například zobrazit místní čas pro 16:30 příští pondělí na východním pobřeží Austrálie, zadejte:
date -d 'TZ="Australia/Sydney" 04:30 next Monday'

Použít datum s dalšími příkazy
Můžete použít date
příkaz k vytvoření názvů souborů obsahujících aktuální čas a datum. Vstup níže vytvoří záložní soubor MySQL ve formátu aktuálního data:
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Další běžné použití date
příkaz je ve skriptech shellu. Níže přiřadíme výstupu date
do date_now
proměnná:
date_now=$(date "+%F-%H-%M-%S")

Používejte Unix Epoch Time (Epoch Converter)
Můžete použít date
příkaz jako převodník Epoch. Epocha neboli časová razítka Unixu je počet sekund, které uplynuly od 1. ledna 1970 v 00:00:00 UTC.
Chcete-li zobrazit počet sekund od epochy do aktuálního dne, použijte %s
ovládání formátu:
date +%s

Chcete-li zjistit, kolik sekund uplynulo od epochy do určitého data, zadejte:
$ date -d "1984-04-08" +"%s"
