我刚刚开始学习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
标准错误上的输出本身会转到文件,这就是我认为您想要实现的目标。