V tomto tutoriálu probereme základy date
příkaz.
date
příkaz zobrazí nebo nastaví systémové datum. Nejčastěji se používá k tisku data a času v různých formátech a výpočtu budoucích a minulých dat.
Použití Linuxu date
Příkaz #
Syntaxe pro date
příkaz je následující:
date [OPTION]... [+FORMAT]
Chcete-li zobrazit aktuální systémový čas a datum pomocí výchozího formátování, vyvolejte příkaz bez jakýchkoli voleb a argumentů:
date
Výstup obsahuje den v týdnu, měsíc, den v měsíci, čas, časové pásmo a rok:
Sat Jun 1 14:31:01 CEST 2019
Možnosti formátování data #
Výstup date
příkaz lze formátovat pomocí sekvence řídicích znaků formátu, před kterými je +
podepsat. Ovládací prvky formátu začínají %
symbol a jsou nahrazeny svými hodnotami.
date +"Year: %Y, Month: %m, Day: %d"
%Y
znak bude nahrazen rokem, %m
s měsícem a %d
se dnem v měsíci:
Year: 2019, Month: 06, Day: 02
Zde je další příklad:
date "+DATE: %D%nTIME: %T"
DATE: 06/02/19
TIME: 01:47:04
Níže je uveden malý seznam některých nejběžnějších formátovacích znaků:
%a
– Zkrácený krátký název dne v týdnu (např. Po)%A
– Zkrácený název celého dne v týdnu (např. pondělí)%b
– Krátký název měsíce v národním prostředí (např. Jan)%B
– Zkrácený dlouhý název měsíce národního prostředí (např. leden)%d
– Den v měsíci (např. 01)%H
- Hodina (00..23)%I
- Hodina (01..12)%j
- Den v roce (001..366)%m
– Měsíc (1. 12.)%M
– Minuta (00..59)%S
- Druhý (00..60)%u
- Den v týdnu (1..7)%Y
– Celý rok (např. 2019)
Chcete-li získat úplný seznam všech možností formátování, spusťte date --help
nebo man date
ve vašem terminálu.
Řetězec data #
-d
možnost vám umožní pracovat v určité datum. Datum můžete zadat jako lidsky čitelný řetězec data, jak je uvedeno níže:
date -d "2010-02-07 12:10:53"
Sun Feb 7 12:10:53 CET 2010
Použití vlastního formátování:
date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974
Řetězec data přijímá hodnoty jako „zítra“, „pátek“, „minulý pátek“, „příští pátek“, „příští měsíc“, „příští týden“ atd.
date -d "last week"
Sat May 25 14:31:42 CEST 2019
Můžete také použít možnost řetězce data k zobrazení místního času pro různá časová pásma. Chcete-li například zobrazit místní čas na 6:30 příští pondělí na východním pobřeží Austrálie, zadejte:
date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun 2 22:30:00 CEST 2019
Přepsat časové pásmo #
date
příkaz vrátí datum ve výchozím systémovém časovém pásmu. Chcete-li použít jiné časové pásmo, nastavte proměnnou prostředíTZ
na požadované časové pásmo.
Chcete-li například zobrazit čas Melbourne, Aus, zadejte:
TZ='Australia/Melbourne' date
Sat Jun 1 22:35:10 AEST 2019
Chcete-li zobrazit všechna dostupná časová pásma, můžete buď vypsat soubory v /usr/share/zoneinfo
nebo použijte timedatectl list-timezones
příkaz.
Epoch Converter #
date
příkaz lze použít 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 vytisknout počet sekund od epochy do aktuálního dne, vyvolejte date
pomocí %s
ovládání formátu:
date +%s
1559393792
Chcete-li převést sekundy od epochy na datum, nastavte sekundy jako řetězec data s předponou @
:
date -d @1234567890
Sat Feb 14 00:31:30 CET 2009
Pomocí date
s Dalšími příkazy #
date
příkaz se nejčastěji používá k vytvoření souborů, které obsahují aktuální čas a datum.
Níže uvedený příkaz vytvoří záložní soubor Mysql v následujícím formátu database_name-20190601.sql
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Můžete také použít date
příkaz ve vašich skriptech shellu. V níže uvedeném příkladu přiřazujeme výstup date
do date_now
proměnná:
date_now=$(date "+%F-%H-%M-%S")
echo $date_now
2019-06-01-15-02-27
Zobrazit čas poslední úpravy souboru #
date
pomocí -r
volba zobrazuje čas poslední úpravy souboru. Například:
date -r /etc/hosts
Tue Jul 24 11:11:48 CEST 2018
Pokud chcete upravit časové razítko souboru, použijte touch
příkaz.
Nastavit systémový čas a datum #
Ruční nastavení systémového času a data pomocí date
příkaz se nedoporučuje, protože ve většině distribucí Linuxu jsou systémové hodiny synchronizovány pomocí ntp
nebo systemd-timesyncd
služby.
Pokud však chcete nastavit systémové hodiny ručně, můžete použít --set=
volba. Pokud například chcete nastavit datum a čas na 17:30, 1. června 2019, zadejte:
date --set="20190601 17:30"
Závěr č.
date
Linuxu příkaz zobrazí nebo nastavte systémové datum a čas.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.