按照时间命令正在执行什么程序?

按照时间命令正在执行什么程序?

在 Ubuntu 的终端中,我想time使用选项执行程序-v,但失败了:

$ time -v ls
-v: command not found

/usr/bin/time但是,如果我这样指定程序的路径,它就可以工作:

$ /usr/bin/time -v ls
foo  bar  baz
        Command being timed: "ls"
        User time (seconds): 0.00
        ...

因此,看起来time/usr/bin/time是不同的可执行文件。但令我惊讶的是,当我尝试识别时timewhich它却告诉我它们是相同的:

$ which time
/usr/bin/time

我很困惑,有人能解释一下发生了什么吗?
结果是不是不正确?

答案1

尝试运行type time- 它可能会告诉您系统上time有一个 shell 关键字(将其与诸如echols和 之类的命令进行比较nano)。

如果你明确想要运行 /usr/bin/time,那么输入/usr/bin/time -v ls

答案2

它既是二进制的/usr/bin/time Shell 内置命令。

$ type time
time is a shell keyword

Shell 内置命令优先于磁盘上的二进制文件。要使用二进制文件,您必须指定路径,例如/usr/bin/time -v ls

维基百科文章有关于该主题的更多信息。

相关内容