stat 时间输出格式
简介:在 Linux 命令行下,我们常常使用 stat 来查看文件的 访问(access)、修改(modify)、改变(change) 的时间,但是 stat 的输出格式只有两种:第一个是 正常的日历时间,小数点后面是 毫秒;第二个是 从 1970-01-01 到现在经过的 秒数。如果我们想要它的输出格式像 date 一样丰富,那该怎么办?1. date 命令我们来看一下 date (man
·
简介:
在 Linux 命令行下,我们常常使用 stat
来查看文件的 访问(access)、修改(modify)、改变(change) 的时间,但是 stat 的输出格式只有两种:
第一个是 正常的日历时间,小数点后面是 毫秒;
第二个是 从 1970-01-01 到现在经过的 秒数。
如果我们想要它的输出格式像 date
一样丰富,那该怎么办?
1. date
命令
我们来看一下 date
(man date)这个命令:
有没有发现 date
接受字符串, 并且将字符串输出, 而不是输出当前时间(这个默认行为)。
2. stat、date 结合
我们现在尝试使用将 state
的时间输出传递给 date
:
#date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs"
#Sat Sep 17 13:52:02 CST 2016
这样时间的格式就是我们想要的结果了。
格式化结果
当然我们还可以对这个结果进行格式化输出,比如:
#date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X'
#2016-09-17 13:52:02
其他内容输出
当然我们还可输出文件名、访问权限, 比如:
#echo "$(stat -c '%n %A' $filename) $(date -d "1970-01-01 + $(stat -c '%Z' $filename ) secs" '+%F %X')"
#test.file -rw-r--r-- 2016-09-17 13:52:02
更多推荐
已为社区贡献1条内容
所有评论(0)