未找到 stat 命令

ANO*_*rog 4 solaris ksh stat

我想在我的 unix shell /usr/bin/ksh 中执行 stat 命令:

输入:

/bin/date +%Y%m%d%H%M%S -d "$(/usr/bin/stat -c %x find.txt)"
Run Code Online (Sandbox Code Playgroud)

和输出:

/usr/bin/ksh: stat:  not found
Run Code Online (Sandbox Code Playgroud)

我的系统: SunOS 5.10 Generic_150400-23 sun4v sparc sun4v

Gil*_*il' 6

stat命令不是标准的。在 Linux 上有一个,在嵌入式 Linux 上有一个更受限制的一个,一个在 FreeBSD 和 OSX 上具有完全不同的选项,而在大多数其他 Unix 变体(如 Solaris、AIX 和 HP-UX)上都没有。您的语法看起来是为 Linux 的stat.

您显然正在运行一个没有stat. date -d那时你可能没有。

列出文件访问时间的唯一可移植方式是使用ls.

ls -log -u find.txt
Run Code Online (Sandbox Code Playgroud)

这以繁琐的格式提供了不那么精确的输出。

如果您可以安装GNU coreutils,请这样做并使用它的statdate命令。许多现代 Unix 变体都有一种安装 GNU 实用程序的简单方法。

或者,使用 Perl,它经常安装在 Unix 系统上。调用stat以读取文件的时间戳并将localtime时间戳分解为日期和时间部分。

perl -e '@stat = stat($ARGV[0]); @time = localtime($stat[9]); printf "%04d%02d%02d%02d%02d%02d\n", $time[5]+1900, @time[4,3,2,1,0]'
Run Code Online (Sandbox Code Playgroud)