我正在尝试使用如下命令跟踪进程的CPU使用情况:
top -b -d 1 | grep myprocess.exe
接下来,我想将其重定向到日志文件,例如
top -b -d 1 | grep myprocess.exe > output.log
现在,这实际上不起作用,因为它认为我正在使用myprocess.exe> output.log 而不是myprocess.exe
有人知道如何让这种重定向工作吗?
答案 0 :(得分:2)
现在,这实际上并不起作用,因为它认为我正在使用
myprocess.exe > output.log
而不是myprocess.exe
错误。一切都应该没问题。第一个示例执行将stdout
设置为终端的管道(因此您可以看到输出,但没有任何内容写入文件)。第二个示例执行管道,stdout
设置为output.log
(因此您看不到输出,但它将在您的文件中正确)。
如果您希望将输出写入两者,则需要另一个进程将前一个管道的stdout
作为stdin
,并将其复制。像:
previous_pipeline | tee output.log
tee
将在stdout上打印stdin
上的内容(因此对于stdout
,一切都与之前相同),但另外打开另一个文件(以cmdline arg的形式给出)和写一份副本。
答案 1 :(得分:1)
尝试tee
:
top -b -d 1 | grep myprocess.exe | tee output.log
如果您希望它不显示输出:
top -b -d 1 | grep myprocess.exe | tee output.log > /dev/null