簡單說,/dev/null (often called the bit-bucket) 是系統中的black hole
任何被導到這裡的東西都直接莎呦哪拉,不會被系統處理
再來,program通常都有輸入和輸出
輸入通常是standard input(STDIN),可能是鍵盤的輸入或是另一個program的output
輸出通常指的是print to standard output(STDOUT),有時候也會需要print to standard error(STDERR)
如果不是用名字來稱呼,他們也有各自的數字來代表他們:
- 0 代表 STDIN
- 1 代表 STDOUT
- 2 代表 STDERR
所以
假設今天你輸入了一行指令叫
./my_program > /dev/null 2>&1
這個意思是
my_program這支程式所產生的STDOUT會被導到/dev/null,也就是不會出現在螢幕上
然後STDERR(2)會被導到STDOUT,STDOUT又導到block hole,所以也一樣不會出現在螢幕上
用一句簡短的話來作結論,這個用法就是用來...."把你的output訊息通通丟到黑洞裡!"
PS. That’s one good way to make a program be really quiet!
沒有留言:
張貼留言