2012-11-08 46 views
0

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

zypper的-x -n在geany >> log.txt的

命令逐渐打印输出到控制台。我面临的问题是,上述命令在命令执行完成后立即写入命令输出。当我将它输入终端时,如何重定向bas​​h输出,而不是在最后写入所有命令输出。

+0

请参阅:http://serverfault.com/questions/294218/is-there-a-way-to-redirect-output-to-a-file-without-buffering-on-unix-linux –

回答

1

& >>文件命令

将追加命令的输出到文件

在你的情况

&>>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

+0

我们怎么能在这里使用带有zypper命令的管道?我也需要在那里使用grep。 – saurabhsood91

+0

我正在尝试的命令是 2&> 1 /var/log/oneclick.log zypper -x -n in geany | grep -o“percent = \”[0-9] * \“” 这似乎并没有做任何事情 – saurabhsood91

+0

2>&1 zypper -x -n in geany | FILTER是你想要的 – alinsoar

5

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

zipper -x -n in geany | tee log.txt