IO redirect 在Linux shell 裡面,是一個基本且重要的東西。

三個基本的File descriptor:

File Descriptor 名稱 說明
0 stdin standard input (標準輸入)
1 stdout standard output (標準輸出)
2 stderr standard error (標準錯誤輸出)

將stderr輸出到stdout

$ ls non-exist 2>&1

將stdout與stderr同時輸出到檔案

例如:在compile的時候,通常我們都會用Makefile來實現。這時,有些訊息會輸出到stdout,而有些訊息則會輸出到stderr。可以用以下其中之一將stdout與stderr的輸出一起導向一個檔案,排列順序就好像在螢幕上看到的一樣.

$ find /var -name run &>file

或者

$ find /var -name run >file 2>&1
請注意:

(1)兩種用法的『&』與『>』排列次序並不一樣,別搞混

(2)第二種用法必須先指定stdout,再指定stderr

忽略stdout或stderr

有時候一些訊息是或無關緊要的,或者為了畫面簡潔而不想顯示時。這時候就可以丟到 /dev/null這個無底洞!

$ find /var -name run 2>/dev/null

 

$ secret-app 1>/dev/null 2>/dev/null
創作者介紹

真實旅程

dragonspring 發表在 痞客邦 PIXNET 留言(0) 人氣()