web-dev-qa-db-ja.com

`stat`からミリ秒単位でmtimeエポックタイムスタンプを取得します

statを使用してmtimeを表示している場合、ミリ秒単位の日付を取得します。

$ stat -c '%y' test.log 
2019-07-04 14:32:10.730059167 +0200

ただし、エポックタイムスタンプを表示したい場合、ミリ秒はもう取得されません。

$ stat -c '%Y' test.log 
1562243530

何かが足りないのですか、それとも両方の出力から一緒にパッチを当てる必要がありますか?

1
finefoot

GNU Coreutils実装の場合、次を使用できます

stat --format='%.9Y' file

あるいは単に

stat --format='%.Y' file

infoドキュメントから:

‘%W’、 ‘%X’、 ‘%Y’、および ‘%Z’形式は、小数点の後に印刷する桁数を指定するために、ピリオドが前に付いた精度を受け入れます。たとえば、「%。3X」は、アクセスタイムスタンプをミリ秒の精度で出力します。ピリオドが指定されているが精度がない場合、「stat」は9桁を使用するため、「%。X」は「%.9X」と同等です。過剰な精度を破棄すると、タイムスタンプはマイナス無限大に向かって切り捨てられます。

2
steeldriver