![按照时间命令正在执行什么程序?](https://linux22.com/image/777387/%E6%8C%89%E7%85%A7%E6%97%B6%E9%97%B4%E5%91%BD%E4%BB%A4%E6%AD%A3%E5%9C%A8%E6%89%A7%E8%A1%8C%E4%BB%80%E4%B9%88%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
在 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
是不同的可执行文件。但令我惊讶的是,当我尝试识别时time
,which
它却告诉我它们是相同的:
$ which time
/usr/bin/time
我很困惑,有人能解释一下发生了什么吗?
结果是不是不正确?
答案1
尝试运行type time
- 它可能会告诉您系统上time
有一个 shell 关键字(将其与诸如echo
、ls
和 之类的命令进行比较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
这维基百科文章有关于该主题的更多信息。