“time > time.txt”无法正常工作

“time > time.txt”无法正常工作

我刚刚开始学习Linux命令。我正在尝试该>命令,据我所知,该命令在将其输出写入符号之后的文件之前执行该命令。然而,我的看法似乎与以下行为不同time > time.txt

nagy@nagy-VirtualBox ~/Dokumentumok/random $ date
2016. márc. 20., vasárnap, 18.14.58 CET
nagy@nagy-VirtualBox ~/Dokumentumok/random $ time

real    0m0.000s
user    0m0.000s
sys 0m0.000s
nagy@nagy-VirtualBox ~/Dokumentumok/random $ date > date.txt
nagy@nagy-VirtualBox ~/Dokumentumok/random $ time > time.txt

real    0m0.000s
user    0m0.000s
sys 0m0.000s
nagy@nagy-VirtualBox ~/Dokumentumok/random $ cat date.txt
2016. márc. 20., vasárnap, 18.15.21 CET
nagy@nagy-VirtualBox ~/Dokumentumok/random $ cat time.txt
nagy@nagy-VirtualBox ~/Dokumentumok/random $

因此,看起来,虽然date > date.txt按预期工作,但>对我来说奇怪的是,失败了time > time.txt。有人能解释一下吗?

这发生在 Windows 10 托管的 Linux Mint 14.3 虚拟机上。

答案1

时间命令并没有像你想象的那样做。事实上,由于它的目的是对另一个命令的运行进行计时,因此不带参数运行它(没有计时命令)没有多大意义。 (显然它仍然毫无怨言地运行!)

您在这里看到的具体效果是time输出标准错误的统计信息,而不是标准输出(以避免干扰您正在计时的任何输出)。重定向标准输出对标准错误通道没有影响。试试这个:

time ls 2>time.txt

...您重定向标准错误,而不是标准输出。的输出ls照常显示(标准输出不重定向),但time标准错误上的输出本身会转到文件,这就是我认为您想要实现的目标。

相关内容