Bisher alle Antworten verwenden das externe Programm date
.
Da heftiger Schlag 4.2, printf
hat einen neuen Modifier %(dateformat)T
die, wenn sie mit dem Argument verwendet -1
gibt das aktuelle Datum mit dem Format von dateformat
gegeben, gehandhabt durch strftime(3)
(man 3 strftime
für Informationen über die Formate).
Also, für eine reine Bash Lösung:
printf '%(%s)T\n' -1
oder wenn Sie das Ergebnis in einer Variablen var
speichern:
printf -v var '%(%s)T' -1
Keine externen Programme und keine Subshells!
Seit Bash 4.3, es ist sogar möglich, nicht die -1
angeben:
printf -v var '%(%s)T'
(aber es könnte klüger sein, immer das Argument zu geben -1
dennoch).
Wenn Sie -2
als Argument anstelle von -1
verwenden, verwendet Bash die Uhrzeit, an der die Shell gestartet wurde, anstelle des aktuellen Datums (aber warum sollten Sie das wollen?).
Sorry, ich muss sagen .... '' Date scheint nicht Angebot diese Option. Gibt es einen einfachen Weg? "" - Lesen Sie das Handbuch noch einmal ;-) – TheBonsai
Einige Versionen des Datums haben es und andere nicht. Es ist also nicht immer präsent. Ich lief 'Typ -ein Datum' und benutzte eine andere Version und das funktionierte. –
FWIW, Ubuntu hat nur/bin/date, für das @ Steefs Antwort funktioniert –