Kouzla s příkazem date

Jak z příkazu date dostat jiný údaj než standardní, kdy vypisuje datum, čas z časovou zónu odpovídající aktuálnímu času?

Nahlédněte do manuálové stránky nebo do výstupu příkazu po použití přepínače --help:

date --help
...
Usage: date [OPTION]... [+FORMAT]
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Vypíše aktuální čas v daném FORMÁTu, nebo nastaví datum v systému.
...
FORMAT controls the output.  The only valid option for the second form
specifies Coordinated Universal Time.  Interpreted sequences are:
...

Máte tedy tyto možnosti ovlivnit výstup příkazu:

Typické příklady použití příkazu date:

date +%Y%m%d
Rok, měsíc a den v logickém pořadí vhodném ke třídění. Využijeme vlastnosti příkazového interpretu vykonávat vložené příkazy, naplníme výstupem příkazu date proměnnou shellu a dále již pracujeme s ní:
ZALOHA=$ADRESAR/zaloha-`date +%Y%m%d`.tar.bz2
[ -f $ZALOHA ] && echo "Varovani - soubor $ZALOHA jiz existuje!"
tar cjf $ZALOHA $PREPINACE $SEZNAM_SOUBORU
echo "Zaloha byla zapsana do souboru $ZALOHA" | mail root
date +%Y%m%d --date "yesterday"
Totéž jako v předchozím případě, ale používáme včerejší datum
date +%Y%m%d --date "1 year 1 day"
Totéž jako v předchozím případě, ale používáme datum "...do roka a do dne"
date --date "Jan 1 00:00:00 GMT 1970 $s sec"
Speciální modifikace použitého data použitá v případě, že v proměnné $s máte uložen datum a čas v unixovém formátu, tj. počet sekund, které uplynuly od začátku epochy - 1. ledna 1970

Odkazy: