「unix」は「/」と「\ 0」以外のファイルに何でも持つことができることは誰もが知っているように、システム管理者は、主に入力としてスペースが好きではないため、はるかに小さい設定になる傾向があります...とりわけ「:」と「@」の特別な意味。
最近、ファイル名にタイムスタンプが使用されているさらに別のケースを見たことがあります。さまざまな形式で遊んで「より良い」ものにした後、「ベストプラクティス」を見つけようとしました。ここで質問して、人々の考えを見てみます。
考えられる「一般的な」ソリューション(p = prefixおよびs = suffix):
syslog/logrotate/DNSのような形式:
p-%Y%m%d-suffix = prefix-20110719-s
p-%Y%m%d%H%M-suffix = prefix-201107191732-s
p-%Y%m%d%H%M%S-suffix = prefix-20110719173216-s
長所:
短所:
ISO-8601-フォーマット
p-%Y-%m-%d-s = p-2011-07-19-s
p-%Y-%m-%dT%H:%M%z-s = p-2011-07-19T17:32-0400-s
p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T17:32:16-0400-s
p-%Y-%m-%dT%H:%M:%S%z-s = p-2011-07-19T23:32:16+0200-s
長所:
短所:
rfc-3339フォーマット
p-%Y-%m-%d-s = p-2011-07-19-s
p-%Y-%m-%d %H:%M%:z-s = p-2011-07-19 17:32-04:00-s
p-%Y-%m-%d %H:%M:%S%:z-s = p-2011-07-19 17:32:16-04:00-s
p-%Y-%m-%d %H:%M:%S%:z-s = p-2011-07-19 23:32:16+02:00-s
長所:
短所:
ハイフンが大好きです:
p-%Y-%m-%d-s = p-2011-07-19-s
p-%Y-%m-%d-%H-%M-s = p-2011-07-19-17-32-s
p-%Y-%m-%d-%H-%M-%S-s = p-2011-07-19-23-32-16-s
長所:
短所:
私は拡張子付きのハイフンが大好きです:
p.%Y-%m-%d.s = p.2011-07-19.s
p.%Y-%m-%d.%H-%M.s = p.2011-07-19.17-32.s
p.%Y-%m-%d.%H-%M-%S.s = p.2011-07-19.23-32-16.s
長所:
短所:
...したがって、誰もが好みと理由、または複数のことを望んでいます(たとえば、マシンがローカルのままでいることが95 +%の場合はTZを気にしませんが、そうでない場合は気にします)。
または、明らかに、上記のリストにないもの。
だから...「最高の」日付時刻形式のサンプル:
20120317T1748Z
2012-03-17T1748Z
2012-03-17--1748Z
完全にIAWの標準であるため、私は1.に部分的ですが、他の人は近いです。
注:もちろん、必要に応じて秒を追加します。 ...そしてはい、秒の有無にかかわらず(または数分)はすべてIAW ISO 8601です。
タイムゾーンは含めず、世界時のみを使用します。混乱がある場合は、-UTCサフィックスを追加できます。タイムゾーンを指定すると、誰かがそれに依存する可能性があります。また、一部の処理でDSTの変更やDSTシフトが大混乱を引き起こす、またはDST構成が最新ではないために一部のシステムで処理が異なる、奇妙なEdgeのケースがあります。 UTCはどこでも常に同じです。
ハイフンを使用すると、ファイルデータの日時がわかりやすくなるという意味で、ファイル名が読みやすくなると思います。 1秒未満の精度を含める場合、通常は.nnnnnです。
私は個人的にTが好きではありません。ファイル名にコロンを使用すると、他のファイルシステムとの相互運用性に影響を与える可能性があります。
価値のあるものは何でも、これはスクリーンショットユーティリティ scrot
がデフォルトでファイル名に使用する形式です(つまり、ファイル名が指定されていない場合)。
_%Y-%m-%d-%H%M%S_$wx$h_scrot.png
_
_%
_を使用する部分は標準の strftime(3)
形式指定子で、_$w
_は画像の幅、_$h
_は画像の高さです。
例:
_$ scrot
$ find *.png
2020-03-07-152236_1920x1080_scrot.png
_
UTCタイムスタンプの場合:
_$ TZ=UTC scrot
$ find *.png
2020-03-07-152236_1920x1080_scrot.png
2020-03-07-183257_1920x1080_scrot.png
_
注:ファイル名にタイムゾーンが指定されていません。ツールの意図する目的(つまり、スクリーンショット)を考慮すると、それが価値をもたらすとは思いません。さらに、上記のフォーマットは、読み取りもそのままの解析もできるほど簡単です。
ソース :
_if (!opt.output_file) {
opt.output_file = gib_estrdup("%Y-%m-%d-%H%M%S_$wx$h_scrot.png");
opt.thumb_file = gib_estrdup("%Y-%m-%d-%H%M%S_$wx$h_scrot-thumb.png");
} else {
have_extension = scrot_have_file_extension(opt.output_file);
}
_