我想获取unixSolaris机器上文件的访问时间和修改时间。在该 Solaris 计算机中未找到 `stats 命令。您能否建议使用哪个命令来查找文件的访问时间和修改时间?我使用了以下内容(显然不起作用):
sftp> truss -f -v 'lstat,lstat64' ls -d 140901.log
Invalid command.
您能建议一下命令吗?
答案1
truss
很可能安装在您的计算机上,问题是您是从 调用它sftp
,而不是从 shell 提示符调用它。
对于后者,使用 Solaris 标准命令获取访问和修改时间的方法是:
$ truss -f -v 'lstat,lstat64' ls -d . 2>&1 | grep '[am]t ='
29879: at = Jul 16 17:20:56 CEST 2014 [ 1405524056.485059303 ]
29879: mt = Aug 18 23:34:35 CEST 2014 [ 1408397675.814979313 ]
答案2
该stat
命令不是由 POSIX 定义的,并且在某些 *nix 系统上不可用。实际上 POSIX 定义的 CLI 实用程序不会返回 atime。使用perl
是一种适用于大多数 *nix 机器的方法。以下是您可以在 shell 脚本中使用的单行代码:
perl -sle '@s = stat($filename); print "atime: $s[8]\nmtime:$s[9]"' -- -filename=foo
答案3
/usr/bin/stat
在我的 Solaris 11 系统上。它作为包的一部分安装gnu-coreutils
。
另外,truss
不是sftp
子命令。您可能想要运行一个ssh
会话而不是sftp
运行truss
.