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
忽略stdout或stderr
有時候一些訊息是或無關緊要的,或者為了畫面簡潔而不想顯示時。這時候就可以丟到 /dev/null這個無底洞!
$ find /var -name run 2>/dev/null |
$ secret-app 1>/dev/null 2>/dev/null |
全站熱搜