2014-02-06 137 views
2

在這篇文章中,How To Create a Patch File for a RPM,我們使用這個命令:> |在bash中做什麼?

diff -ru base-1.4.4-orig base-1.4.4 >| $HOME/rpmbuild/SOURCES/base-1.4.4-f12.patch 

由於輸出寫入到文件中,簡單的重定向操作>爲我工作得很好。

此操作符是否意味着重定向到管道?如果是這樣,那麼重定向到一個不同於重定向到文件的管道,還是管道到一個進程?

回答

6

通過執行命令

set -o noclobber 

或等值

set -C 

可能會導致bash的拒絕重定向輸出時寫入現有文件。使用>|而不是>將覆蓋該設置。

參考文獻:

或者運行info bash(假設它是安裝在系統上)並搜索>|

s>\| 

(如果你」回覆熟悉csh和/或tcsh,bash的>|(大於垂直條)類似於csh的>!(大於感嘆號)。

2

從bash的手冊頁:

如果重定向操作符是> |,或者重定向 運營商>和noclobber選項設定的內置命令未啓用,重定向>嘗試即使按字存在名爲 的文件。