Dies funktioniert nicht, da der Befehl date
eine Zeichenfolge mit Leerzeichen zurückgibt.
$ date
Wed Oct 16 19:20:51 EDT 2013
Wenn Sie wirklich solche Dateinamen möchten, müssen Sie diese Zeichenfolge in Anführungszeichen setzen.
$ touch "foo.backup.$(date)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:22 foo.backup.Wed Oct 16 19:22:29 EDT 2013
Sie denken wahrscheinlich an eine andere Zeichenfolge, die angehängt werden soll. Normalerweise benutze ich so etwas:
$ touch "foo.backup.$(date +%F_%R)"
$ ll foo*
-rw-rw-r-- 1 saml saml 0 Oct 16 19:25 foo.backup.2013-10-16_19:25
Weitere Formatierungscodes für Datum und Uhrzeit finden Sie auf der Manpage für das Datum.
Zusätzliche Formate
Wenn Sie die vollständige Kontrolle übernehmen möchten, wenn Sie die Manpage aufrufen, können Sie Folgendes tun:
$ date +"%Y%m%d"
20131016
$ date +"%Y-%m-%d"
2013-10-16
$ date +"%Y%m%d_%H%M%S"
20131016_193655
HINWEIS: Sie können date -I
oder verwenden, date --iso-8601
die die gleiche Ausgabe wie erzeugen date +"%Y-%m-%d
. Dieser Schalter kann auch ein Argument verwenden, um verschiedene Zeitformate anzugeben :
$ date -I=?
date: invalid argument ‘=?’ for ‘--iso-8601’
Valid arguments are:
- ‘hours’
- ‘minutes’
- ‘date’
- ‘seconds’
- ‘ns’
Try 'date --help' for more information.
Beispiele:
$ date -Ihours
2019-10-25T01+0000
$ date -Iminutes
2019-10-25T01:21+0000
$ date -Iseconds
2019-10-25T01:21:33+0000