0

我正在尝试将命令的输出重定向到文件。我使用的命令 (zypper) 从 Internet 下载包。我正在使用的命令是

zypper -x -n in geany >> log.txt

该命令逐渐将输出打印到控制台。我面临的问题是,上面的命令在命令执行完成后一次将命令输出全部写入。如何将 bash 输出重定向到终端,而不是在最后写入所有命令输出。

4

2 回答 2

5

不是 bash 本身,而是通过tee命令:

zipper -x -n in geany | tee log.txt
于 2012-11-08T17:39:38.603 回答
1

&>>文件命令

将 COMMAND 的输出附加到 FILE

在你的情况下

&>>log.txt zypper -x -n in geany 

如果要通过过滤器传递命令,则必须确保命令输出到标准输出(文件描述符 1)——如果它输出到标准错误(文件描述符 2),则必须在执行之前将 2 重定向到 1管道。考虑到只有标准输出通过管道。

所以你必须这样做:

2>&1 COMMAND | FILTER

如果您想 grep 输出并同时将其保存到日志文件中,则必须使用 复制它tee,并使用类似的过滤器 ... | tee log-file | grep options

于 2012-11-08T17:39:40.353 回答