我想在我的 unix shell /usr/bin/ksh 中执行 stat 命令:
输入:
/bin/date +%Y%m%d%H%M%S -d "$(/usr/bin/stat -c %x find.txt)"
和输出:
/usr/bin/ksh: stat: not found
我的系统: SunOS 5.10 Generic_150400-23 sun4v sparc sun4v
答案1
该stat
命令不标准。 Linux 上有一种,嵌入式 Linux 上有一种限制更严格的一种,FreeBSD 和 OSX 上有一种完全不同的选项,而大多数其他 Unix 变体(例如 Solaris、AIX 和 HP-UX)上则没有。您的语法看起来像是针对 Linux 的stat
.
您显然正在运行一个没有stat
.date -d
那么你可能都没有。
列出文件访问时间的唯一可移植方法是使用ls
.
ls -log -u find.txt
这会以繁琐的格式提供不太精确的输出。
如果可以安装的话GNU 核心工具,这样做并使用它的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]'
答案2
很确定您的错误意味着您的 shell:
/usr/bin/ksh:
找不到“统计”:
stat: not found
您的操作系统提供“stat”命令吗?您需要提供有关您的操作系统及其版本的更多信息以获得进一步指导。
您的“PATH”环境变量可能也存在问题。
答案3
这完全取决于您的系统,而您没有指定。安装包管理器提供的二进制文件的另一种方法是从源代码编译程序。为此,您必须首先下载coreutils源代码(coreutils-8.0
在撰写本文时)。
如果它在存档中,请将其解压缩,然后进入源目录。使用命令运行配置脚本./configure
,然后等待其完成。配置完成后(没有重大错误),然后使用命令运行 make make
。
make 完成所需的时间可能从 30 秒到几天不等,具体取决于应用程序的大小和复杂性。然而,在这种情况下,make 步骤不太可能花费几分钟。
一旦 make 编译完程序(没有错误),请使用命令安装程序make install
,或者如果您不是 root 用户,则安装程序sudo make install
。这应该只需要几秒钟,但在某些情况下可能需要更长时间。完成后,您可以退出该coreutils
目录,然后继续删除它。
笔记
- 其工作的唯一要求(以及适当的库和依赖项*)是 GCC 或 CC 以及 make 实用程序。
- 要使用一个命令运行所有这些步骤,您可以输入
./configure && make && make install
。 - coreutils 的完整依赖项列表是:Bash、Binutils、Coreutils、Diffutils、GCC、Gettext、Glibc、Grep、Make、Perl、Sed。
参考
有关更多信息,请参阅以下页面: