2012-11-08 51 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