我正在尝试将命令的输出重定向到文件。我正在使用的命令(zypper)从互联网下载包。我正在使用的命令是
zypper -x -n in geany>> log.txt的
该命令逐渐将输出打印到控制台。我面临的问题是上面的命令在命令完成执行后立即写入命令输出。如何将bash输出重定向到终端,而不是在结尾写入所有命令输出。
答案 0 :(得分:5)
不是使用bash本身,而是通过tee
命令:
zipper -x -n in geany | tee log.txt
答案 1 :(得分:1)
&>> FILE COMMAND
会将COMMAND的输出附加到FILE
在你的情况下
&>>log.txt zypper -x -n in geany
如果你希望pipe a command
通过filter
,你必须确保命令输出到1 - 如果它输出到2,你必须在管道之前将2重定向到1。考虑到只有stdout通过管道。
所以你必须这样做:
2>&1 COMMAND | FILTER
如果要grep输出并将其保存到日志文件中,则必须使用tee
复制它,并使用filter
... | tee log-file | grep options