如何在Linux上将命令的输出传递给文件

时间:2010-05-15 13:03:01

标签: linux ubuntu

我在CLI上运行任务,提示我输入是/否。

选择一个选项后,屏幕上会滚动大量信息 - 包括多个错误。我想将此输出传递给一个文件,以便我可以看到错误。一个简单的'>'由于命令需要键盘输入,因此无法正常工作。

我在Ubuntu 9.1上运行。

5 个答案:

答案 0 :(得分:40)

command &> output.txt

您可以使用&>将stdout和stderr重定向到文件。这是command > output.txt 2>&1的简写,其中2>&1表示“将stderr发送到与stdout相同的位置”(stdout是文件描述符1,stderr是2)。

对于交互式命令,如果我可以使用less并立即阅读结果,我通常不会费心保存到文件中:

command 2>&1 | less

答案 1 :(得分:4)

echo yes | command > output.txt

取决于命令如何读取它的输入(某些程序在显示它的提示之前丢弃stdin上的任何内容,但大多数没有),这应该适用于任何理智的CLI环境。

答案 2 :(得分:1)

使用2>而非>

答案 3 :(得分:1)

如果程序是由一个理智的人写的,你可能想要的是stderr而不是stdout。你可以通过使用像

这样的东西来达到这个目的

foo 2> errors.txt

答案 4 :(得分:1)

你可以使用2>将错误发送到文件的选项。

示例:

命令2> error.txt

(使用选项2>)---看看它们在执行命令时是否会出现任何错误,它会将其发送到文件error.txt。