"date +FORMAT"コマンド - %a、%A、%bなどは何ですか?

"date +FORMAT"コマンド - %a、%A、%bなどは何ですか?

このdateコマンドは、以下のように現在の日時を出力しますFri Apr 12 15:04:03 UTC 2013

日付/時刻をカスタム形式で出力するには、date +FORMAT次のようdate "+%Y-%m-%dT%H:%M:%S%:z"に使用できます2013-04-12T15:04:37+00:00

%Yところで、、、、、などをまとめて何と呼ぶか​​(%mつまり、用語)知りたいです%d。しかも他と違うんですが、何と呼びますか?%H%M%ST

答え1

POSIX仕様で使用される用語dateコマンドは「仕様変換」です。

コマンドの書式文字列は、dateC関数の書式文字列と密接に関連していますprintf。 C規格では、%d「変換仕様」などの内容も述べています。

T前に出ていない文字は%1文字だけです。 「他のすべての文字は変更されずに出力にコピーする必要があります。」

POSIX説明の変更履歴セクションによると、次のようになりますdate

LC_TIME カテゴリに一致するようにフィールド記述子の代わりに変換仕様を参照するように説明が更新されました。

明らかに、以前のバージョンの仕様では「フィールド記述子」という用語を使用していましたが、「変換仕様」は現在の公式用語です。

もちろん、これがあなたを意味するわけではありません持つこのように言及してください。

答え2

私は「エスケープシーケンス」または(この場合)「特殊文字のパーセントエスケープシーケンス」がこれを参照する一般的な方法だと思います。バックスラッシュとパーセントエスケープシーケンスはC(たとえばprintf)で広く使用されているため、多くのUnixコマンド(シェルプロンプト指定など)でフィルタリングされます。

「エスケープシーケンス」は、「%Y」、「%m」、「%d」などです。 「特殊文字」は「Y」、「m」、「d」などです。 「%」は「エスケープ文字」(次の文字に特異な/特別な意味を与える文字)です。

答え3

このファイルIBM Information Center では、次のように明確に説明しています。アルファベット%Y、、、、、などを「と%mいいます。%d%H%M%Sフィールド記述子」。

それぞれの前に来なければなりません。フィールド記述子%(パーセント記号).システムはフィールド記述子を指定された値に置き換えます。 [...]このdateコマンドは、追加の文字を変更せずに出力にコピーします。

これは私の質問(%nとTに関する)に対する答えです。私はこれが最も権威があると信じています。

答え4

他の人が言ったように、これはT文字通りの手紙ですT。ただし、具体的には、次のような形式のdate "+%Y-%m-%dT%H:%M:%S%:z"文字列のように見えます。ISO-8601日付と時刻の指定。T日付と時刻を区切る区切り記号は次のとおりです。

関連情報