轉(zhuǎn)自: http://blog.csdn.net/geekster/article/details/6657620
先說一下Linux重定向:
0淘太、1和2分別表示標(biāo)準(zhǔn)輸入杀捻、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤信息輸出沪蓬,可以用來指定需要重定向的標(biāo)準(zhǔn)輸入或輸出。
在一般使用時(shí)呀舔,默認(rèn)的是標(biāo)準(zhǔn)輸出场斑,既1.當(dāng)我們需要特殊用途時(shí)糠睡,可以使用其他標(biāo)號(hào)挽鞠。例如,將某個(gè)程序的錯(cuò)誤信息輸出到log文件中:./program 2>log狈孔。這樣標(biāo)準(zhǔn)輸出還是在屏幕上信认,但是錯(cuò)誤信息會(huì)輸出到log文件中。
另外除抛,也可以實(shí)現(xiàn)0狮杨,1,2之間的重定向到忽。2>&1:將錯(cuò)誤信息重定向到標(biāo)準(zhǔn)輸出橄教。
Linux下還有一個(gè)特殊的文件/dev/null,它就像一個(gè)無底洞喘漏,所有重定向到它的信息都會(huì)消失得無影無蹤护蝶。這一點(diǎn)非常有用,當(dāng)我們不需要回顯程序的所有信息時(shí)翩迈,就可以將輸出重定向到/dev/null持灰。
如果想要正常輸出和錯(cuò)誤信息都不顯示,則要把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都重定向到/dev/null负饲, 例如:
ls 1>/dev/null 2>/dev/null
還有一種做法是將錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出堤魁,然后再重定向到 /dev/null,例如:
ls >/dev/null 2>&1
注意:此處的順序不能更改返十,否則達(dá)不到想要的效果妥泉,此時(shí)先將標(biāo)準(zhǔn)輸出重定向到 /dev/null,然后將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出洞坑,由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null盲链,因此標(biāo)準(zhǔn)錯(cuò)誤也會(huì)重定向到/dev/null,于是一切靜悄悄:-)
由于使用nohup時(shí),會(huì)自動(dòng)將輸出寫入nohup.out文件中刽沾,如果文件很大的話本慕,nohup.out就會(huì)不停的增大,這是我們不希望看到的侧漓,因此锅尘,可以利用/dev/null來解決這個(gè)問題。
nohup ./program >/dev/null 2>log &
如果錯(cuò)誤信息也不想要的話:
nohup ./program >/dev/null 2>&1 &