Der date
Befehl gibt das aktuelle Datum und die aktuelle Uhrzeit folgendermaßen aus : Fri Apr 12 15:04:03 UTC 2013
.
Um das Ausgabedatum und die Ausgabezeit in einem benutzerdefinierten Format zu haben, können wir date +FORMAT
beispielsweise Folgendes verwenden: date "+%Y-%m-%dT%H:%M:%S%:z"
was so etwas ergibt 2013-04-12T15:04:37+00:00
.
Aber ich möchte wissen , was die %Y
, %m
, %d
, %H
, %M
, %S
, etc. werden kollektiv genannt (dh die Terminologie). Wie T
heißt es auch, da es sich von den anderen unterscheidet?
date
terminology
da ich bin
quelle
quelle
date
Und das„ T “ist nur ein wörtliches„ T “.%Y
als auch auf ihre jeweilige Bedeutung.date +"You will die in the year %Y"
T
nichts Besonderes ist. Außerdem hatte ich einen seltsamen Arbeitstag, als ich das tippte (ich hörte den Gesprächen der Mitarbeiter zu).Antworten:
Der in der POSIX-Spezifikation des
date
Befehls verwendete Begriff lautet "Konvertierungsspezifikationen".Die Formatzeichenfolge für den
date
Befehl basiert eng auf der Formatzeichenfolge für die C-printf
Funktion. Der C-Standard bezieht sich auch auf Dinge wie%d
"Konvertierungsspezifikationen".T
nicht vorangestellt%
ist nur ein Zeichen: "Alle anderen Zeichen werden unverändert in die Ausgabe kopiert."Gemäß dem Abschnitt zum Änderungsverlauf der POSIX-Beschreibung von
date
:In einer früheren Version der Spezifikation wurde anscheinend der Ausdruck "Felddeskriptoren" verwendet, aber "Konvertierungsspezifikationen" ist der aktuelle offizielle Begriff.
Das heißt natürlich nicht, dass Sie sich so auf sie beziehen müssen.
quelle
conversion sequences
" oder "format sequences
" auch geeignete Begriffe? Ich denkesequences
darüber nachspecifications
, weil es tatsächlich in der Manpage für erwähnt wirddate
.Ich würde denken, "Escape-Sequenzen" oder (in diesem Fall) "Sonderzeichen für prozentual maskierte Sequenzen" wären die typische Art, auf sie zu verweisen. Backslash- und Prozent-Escape-Sequenzen werden in C häufig verwendet (z. B. printf), daher wurden sie auch in mehrere Unix-Befehle gefiltert (z. B. Angabe der Eingabeaufforderung für die Shell).
Die "Escape-Sequenz" ist "% Y", "% m", "% d" und so weiter; und die "Sonderzeichen" sind "Y", "m", "d" und so weiter. "%" wäre das "Escape-Zeichen" (das Zeichen, das dem folgenden Zeichen eine ungewöhnliche / besondere Bedeutung gibt).
quelle
Dieses Dokument von IBM Information Center stellt klar , dass die Alphabete in
%Y
,%m
,%d
,%H
,%M
,%S
, etc. „genannt Felddeskriptoren “.Das beantwortet meine beiden Fragen (ungefähr% n & T). Und ich glaube, das ist so maßgeblich wie es nur geht.
quelle
date
Befehl nicht erfunden . Was macht ihre Dokumentation maßgeblich? Das Verhalten des Befehls wird derzeit von POSIX definiert, das diesen Begriff nicht verwendet. Der Änderungsverlauf am Ende der POSIX-Beschreibung lautet "Die BESCHREIBUNG wird aktualisiert, um auf Konvertierungsspezifikationen zu verweisen, anstatt auf Felddeskriptoren, um die Konsistenz mit der Kategorie LC_TIME zu gewährleisten." Dies bedeutet, dass "Konvertierungsspezifikation" und nicht "Feld-Dieskriptor" korrekt ist aktuelle Laufzeit. Siehe auch meine aktualisierte Antwort.Wie andere gesagt haben,
T
ist das ein wörtlicher BriefT
. Um genau zu sein,date "+%Y-%m-%dT%H:%M:%S%:z"
scheint Ihr Beispiel eine Formatzeichenfolge zu sein, die der ISO-8601- Spezifikation für Datum und Uhrzeit entspricht. HierT
ist also ein Trennzeichen, das das Datum von der Uhrzeit trennt.quelle