Haben wir ein date? Na klar: Unter Linux kannst du immer ein date haben.
Wie? Ganz einfach. Frag sie, die Shell: 🐚
|
|
Ich wette: Sie antwortet dir!
Sieh es dir selbst an. Das hat sie zu mir gesagt:
|
|
Wow, ist das cool! Aber klar, jetzt weißt du es: Ich spreche über den date-Befehl unter Linux.
Und darüber, was du alles mit ihr anstellen kannst. 😆
Was kann ich mit date anstellen?
Lass mich noch ein wenig zeigen, was date kann.
Hier frage ich: Welcher Tag ist in 30 Tagen? Und ich lasse mir dafür nur das Datum im Format yyyy-mm-dd ausgeben:
|
|
Was für ein Wochentag war mein Geburtstag?
|
|
Die Ausgabe ist 2️⃣. Ich bin also ein Dienstags-Kind.
Probier es selbst aus!
Etwas formeller
Wie kannst du den date-Befehl allgemein aufrufen? Diese zwei Muster zeigt die man-Page:
|
|
Macht noch nicht so viel Sinn? Kein Problem.
Sehen wir uns folgendes an:
- Werte für
OPTIONvom Befehldate - und mögliche Angaben für
FORMAT
Danach hast du einen guten Überblick über die Theorie, damit du die praktischen Beispiele besser verstehst!
Werte für OPTION, Formatierung und FORMAT
allgemeine Optionen
Hier sind ein paar allgemeine Optionen für date:
allgemeine OPTION |
Bedeutung |
|---|---|
--debug |
Details zur internen Bearbeitung erhalten |
-d, --date=STRING |
wie in STRING |
-f, --file=DATEFILE |
wie -d/--date, aber für jede Zeile aus DATEFILE |
--resolution |
Genauigkeit der Auflösung angeben |
-r, --reference=FILE |
Anzeige der Bearbeitungs-Zeit von FILE |
-s, --set=STRING |
Datum setzen, wie in STRING beschrieben |
Steuerung vom Ausgabe-Format
Und diese Optionen steuern das Format der Ausgabe:
Format-OPTION |
Format |
|---|---|
-I[FMT], --iso-8601[=FMT] |
ISO 8601, wo FMT die Genauigkeit angeben kann |
-R, --rfc-email |
RFC 5322 |
--rfc-3339=FMT |
ISO 8601, wo FMT die Genauigkeit angeben kann |
-u, --utc, --universal |
Format UTC (Universal Time Coordinated) |
Bestandteile von Datum und Uhrzeit
Wenn wir über date sprechen, dann wäre es ohne die Parameter für die Formatierung der Ausgabe unvollständig.
Hier eine kleine Auswahl: 📅
| Platzhalter | Bedeutung |
|---|---|
%A |
Wochentag in Langform |
%F |
Datum im Format %+4Y-%m-%d |
%H |
Stunde im 24h-Format |
%N |
Nanosekunden |
%q |
Quartal im Jahr (1..4) |
%T |
Zeit im Format %H:%M:%S |
%W |
Wochen-Nummer im Jahr (00..53) |
%y |
Jahr 2-stellig |
%Y |
Jahr 4-stellig |
%Z |
Zeitzone im Kurzform (wie CET) |
Die vollständige Liste findest du mit man date.
praktische Beispiele
Aber jetzt Schluss mit der Theorie. Lass uns ansehen, was du mit date so alles anstellen kannst.
Ordner mit Datum erstellen
Ein Ordner kann das aktuelle Datum als Namen haben:
|
|
Das Ergebnis kannst du mit ls überprüfen. Hier wird ein Ordner in folgendem Format erstellt:
|
|
Datum als Unix-Timestamp formatieren
Jetzt rechnen wir ein menschenlesbares Datum in den Unix-Timestamp um.
So geht es mit einem festen Wert als Input:
|
|
Oder du willst das aktuelle Datum dynamisch als Input angeben:
|
|
Unix-Timestamp als Datum formatieren
Auch in der umgekehrten Richtung ist es möglich:
|
|
Details zur Umrechnung anzeigen
Wollen wir die oben genannten Umrechnungen genauer betrachten, dann nehmen wir einfach debug dazu:
|
|
Datum in Standard-Formaten ausgeben
Mit diversen Optionen kannst du das Datum in verschiedenen Standard-Formaten ausgeben:
|
|
Datum mit beliebigem Format ausgeben
Du kannst auch das Datum in einem für dich passenden Format ausgeben:
|
|
Oder die Uhrzeit:
|
|
Den Tag im Jahr:
|
|
Und so weiter.
Beachte bitte, dass manche Buchstaben in nach gross und klein unterschieden werden.
Zum Beispiel ist %S die Angabe der Sekunden, aber %s sind die Sekunden seit der Unix-Epoche (1970-01-01 00:00 UTC).
Verwendung der Ausgabe vom Datum
Du kannst direkt eine Datei oder einen Ordner mit Datum in Namen erstellen:
|
|
Oder du speicherst den Wert in einer Variablen:
|
|
Und kannst die Variable so verwenden:
|
|
Bitte beachte, dass im letzten Befehl der Variablen-Name von geschweiften Klammern umgeben ist, damit die Shell was, was der Name der Variablen ist und was ich als Suffix angegeben habe.
Berechnung von Datums-Werten
Weiter oben hatten wir es ja schon: Mit date lässt sich auch wunderbar rechnen.
Hier noch eine kleine Auswahl dazu:
|
|
Verwandte Befehle
Auch viele andere Befehle unter Linux haben mit Datum und Uhrzeit zu tun. Hier folgt noch eine kleine Auswahl.
Kalender mit cal
So zeigst du zum Beispiel einen Kalender für 3 Monate an und sagst, dass die Woche mit Montag (m) beginnt.
|
|
So sieht die Ausgabe aus:
|
|
Ausgabe vom Datum bei ls
So würde die Ausgabe vom Datum normalerweise bei ls -l aussehen:
|
|
Finde ich nicht besonders lesbar. Du kannst stattdessen zum Beispiel das verwenden:
|
|
Etwas lang, um das jedes Mal zu schreiben? Ich habe einen Alias dafür definiert:
|
|
Dann reicht l und ich bekomme mein gewünschtes Datums-Format ausgegeben:
|
|
Siehst du den Unterschied zu oben?
Hilfe zum date-Befehl
Ich könnte zwar noch mehr schreiben, aber das soll als erster Überblick reichen. ⏰
Falls du tiefer einstiegen willst, dann findest du hier noch viel mehr Details:
- eingebaute Hilfe aufrufen:
date --help - die gesamte Man-Page ansehen:
man date - oder mit tldr eine kurze, praktische Hilfe:
tldr date