Answers:
Ubuntu使用GNU coreutils stat
,而OSX使用BSD变体。因此,在Ubuntu上,命令有些不同:
stat -c %Y .bashrc
来自man stat
:
-c --format=FORMAT use the specified FORMAT instead of the default; output a new‐ line after each use of FORMAT
和:
%Y time of last data modification, seconds since Epoch
如果您想使用一种可移植的方式来运行这些程序而与OS无关,则有几种方法可以执行。我想我会一次将变量设置为适当的参数:
if uname | grep -q "Darwin"; then
mod_time_fmt="-f %m"
else
mod_time_fmt="-c %Y"
fi
然后stat
在需要的地方在命令中使用此值:
stat $mod_time_fmt .bashrc
由于OSX和Ubuntu版本的版本stat
有所不同,因为OSX stat
默认为简洁输出,而Linux stat
默认为冗长,则需要跳过一些麻烦。一种可能性是仅在OSX上使用别名,使stat在两者上的性能相同。
如果您不介意设置别名以stat
在OSX上强制使用verbose输出,alias stat="stat -x"
则不需要perl。
stat .bashrc| grep Modify
这是Ubuntu下您所需要的。如果您按上述设置别名,则它也可以在OSX下使用
来自Ubuntu 14.04.5的示例可以从Ubuntu 16.04获得几乎相同的结果
stat .bashrc| grep Modify
Modify: 2014-03-30 23:14:47.658210121 -0500
如果您只需要时间戳记,则可以删除该时间戳记Modify:
并保留其余的
stat .bashrc| grep Modify | cut -c 9-
资料来源: