我想在我的 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
该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,请这样做并使用它的stat
和date
命令。许多现代 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)