truss 命令中的统计用法?

truss 命令中的统计用法?

我想获取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.

相关内容