unixshell中两个文件的时间戳差异

unixshell中两个文件的时间戳差异,unix,timestamp,solaris,Unix,Timestamp,Solaris,我有两个文件。我需要计算两个文件之间的时间戳差异 我需要test1和test2之间的时间戳差异: -rw-r--r--1根根目录1 Aug 16:26 test1 -rw-r--r--1根根根2 2010年12月13日测试2 我需要test3和test4之间的时间戳差异 -rw-r--r-- 1 root root 3 Aug 16 16:26 test3 -rw-r--r-- 1 root root 4 Aug 16 17:34

我有两个文件。我需要计算两个文件之间的时间戳差异

我需要test1和test2之间的时间戳差异: -rw-r--r--1根根目录1 Aug 16:26 test1 -rw-r--r--1根根根2 2010年12月13日测试2

我需要test3和test4之间的时间戳差异

-rw-r--r--   1 root     root           3 Aug 16 16:26 test3
-rw-r--r--   1 root     root           4 Aug 16 17:34 test4
请让我知道我们如何在Solaris中实现它。 我正在使用Solaris,我的机器信息是:

- Sol 5.10 Generic_127128-11 i86pc i386 i86pc. 
如果你还需要知道什么,请告诉我

在Solaris中,我已将以下答案日期转换为秒

truss /usr/bin/date 2>&1 | grep ^time | awk -F"= " '{print $2}'

但这是目前的日期。。如何对文件执行此操作(例如,如上所述的test3)?

尝试类似的方法以秒为单位获取日期

date +%s -d "`ls -l test1 | awk -F " " '{ print $6,$7 }'`"
stat(1)命令可以显示从历元开始的时间戳(以秒为单位):

stat --printf '%Y\n' foo
因此,类似以下的方法可能会起作用:

(stat --printf '%Y' test2; printf ' - '; stat --printf '%Y\n' test4) | bc -lq
根据需要调整

$ ls -l .bashrc*
-rw-r--r-- 1 max max 360 Dec 14  2010 .bashrc
-rw-r--r-- 1 max max 359 Dec  2  2010 .bashrc~

$ echo $((`stat --format=%Y .bashrc` - `stat --format=%Y .bashrc~`))
1018884

$(())
语法是bash算术表达式扩展。上面发生的情况是,从Unix epoch开始,文件时间戳(以秒为单位)被减去,并且差被打印出来。

它不起作用:(.抛出下面的错误:-bash:命令替换:第1行:查找匹配时出现意外的EOF
“'bash:命令替换:第2行:语法错误:文件意外结尾bash:命令替换:第1行:查找匹配项时意外出现EOF
”'bash:命令替换:第2行:语法错误:文件意外结尾awk:无法打开{print$6,$7}”此命令在solaris上不起作用…..您是否有任何其他命令可以在solaris上工作?您希望时间戳差异达到何种精度级别,即以天、小时或分钟为单位?stat是coreutils的一部分,通常安装在每个Linux系统上,嵌入式系统除外,因此如果您没有它,我会感到惊讶。或者您使用的是其他Unix系统?我想您需要提供更多的上下文和信息以获得更多帮助。(例如:您使用的是什么系统,确切的错误是什么。请编辑您的问题以获得帮助。)嘿,首先,thx…我使用的是solaris,我的机器信息是:-Sol 5.10 Generic_127128-11 i86pc i386 i86pc。如果你还需要什么,请告诉我linux上的ur命令正在工作…但是在solaris上它说找不到stat命令。你能告诉我stat是否是solaris命令吗?你想在solaris上做的第一件事是安装GNU工具。