2009-04-27 32 views

回答

7

我使用此表單將標準輸出和標準錯誤重定向到同一個文件。

ls -ld . fred > no_fred 2>&1 

剛剛在Red Hat Linux 4的Korn shell中測試過。 no_fred包含:

ls: fred: No such file or directory 
drwxrwxr-x 2 user group 1024 Apr 27 17:41 . 

「>」,實際上是1>,它說重定向文件描述符1(標準輸出)。 「2>」重定向標準錯誤,因爲標準錯誤是文件描述符2.「& 1」表示「無論您使用文件描述符1」。所以在一起,這意味着「將標準輸出轉儲到文件中,並伴隨標準錯誤」。

此方法的一個優點是錯誤消息顯示在正確的位置。例如,對於編譯失敗的文件,編譯器的錯誤消息將顯示在makefile的編譯命令之後。

>> &構造可能會將該命令的輸出附加到日誌文件中,並將其放入後臺。我不確定它是否有任何標準錯誤。我剛剛諮詢過Bolsky/Korn 1989,它甚至不在那裏,所以也許別人可以解析它的功能。

更新:如果你在你的命令的任何管道,那麼早期階段的標準 錯誤將首先出現,作爲錯誤產生命令 運行。由於只有標準輸出通過管道路由,所以當整個管道完成時,它將全部同時出現。

+0

作品與ksh88太 – Dima 2011-11-17 14:22:21

2

您試圖在ksh中使用csh語法。見Jason的回答。

0

對於附加:

ls -ld . fred 1>> no_fred 2>&1 
相關問題