如果我用来stat显示 mtime,我会得到一个以毫秒为单位的日期:
$ stat -c '%y' test.log
2019-07-04 14:32:10.730059167 +0200
Run Code Online (Sandbox Code Playgroud)
但是,如果我想显示纪元时间戳,我将不再获得毫秒:
$ stat -c '%Y' test.log
1562243530
Run Code Online (Sandbox Code Playgroud)
我是否遗漏了某些内容,或者我必须将两个输出的内容修补在一起?
对于 GNU Coreutils 实现,您可以使用
\n\nstat --format='%.9Y' file\nRun Code Online (Sandbox Code Playgroud)\n\n要不就
\n\nstat --format='%.Y' file\nRun Code Online (Sandbox Code Playgroud)\n\n从info文档中:
\n\n\xe2\x80\x98%W\xe2\x80\x99、\xe2\x80\x98%X\xe2\x80\x99、\xe2\x80\x98%Y\xe2\x80\x99 和 \xe2\ x80\x98%Z\xe2\x80\x99 格式接受前面带句点的精度,以指定小数点后要打印的位数。例如,\xe2\x80\x98%.3X\xe2\x80\x99 将访问时间戳输出为毫秒精度。如果给出句点但没有精度,则 \xe2\x80\x98stat\xe2\x80\x99\n 使用 9 位数字,因此 \xe2\x80\x98%.X\xe2\x80\x99 相当于 \xe2\x80 \x98%.9X\xe2\x80\x99。当丢弃多余的精度时,时间戳会被截断为负无穷大。
\n