如何在Linux下使用Bash将所有输出重定向到文件中?

13 浏览
0 Comments

如何在Linux下使用Bash将所有输出重定向到文件中?

这个问题已经有答案了:

如何使用Bash将标准输出和标准错误重定向并附加到文件中

我正在尝试将命令行程序的所有输出重定向到文件中。我正在使用Bash。一些输出被定向到文件,但是一些仍然出现在终端上并且没有存储到文件中。

类似的症状在这里描述:

将所有输出重定向到文件

然而,我已经尝试了所提出的解决方案(捕获stderr),但是没有成功:

  > stdout.txt 2> stderr.txt

stderr.txt文件被创建但是为空的。

一个可能的线索是命令行程序是一个客户端,它与同一台机器上的服务器进行通信。一些输出可能来自服务器

有没有办法捕获终端的所有输出,无论它的起源如何?

编辑:

我已经确认缺失的输出是由服务器生成的。在单独的终端中运行命令会在两个终端中产生一些输出,我可以将命令终端的所有输出导向到一个文件中。这引发了如何捕获服务器输出的问题,但这是另一个问题了。

admin 更改状态以发布 2023年5月21日
0
0 Comments

尽管不符合POSIX,但是bash 4有&>操作符:

command &> alloutput.txt

0
0 Comments

您可以使用此语法将所有输出的stderr和stdout重定向到stdout.txt

  > allout.txt 2>&1 

0