同時,還可以在這三個標(biāo)準(zhǔn)輸入輸出之間實現(xiàn)重定向,比如將錯誤信息重定向到標(biāo)準(zhǔn)輸出,可以用 2>&1來實現(xiàn)。
Linux下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。這一點非常有用,當(dāng)我們不需要回顯程序的所有信息時,就可以將輸出重定向到/dev/null。
如果想要正常輸出和錯誤信息都不顯示,則要把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤都重定向到/dev/null, 例如:
# ls 1>/dev/null 2>/dev/null
還有一種做法是將錯誤重定向到標(biāo)準(zhǔn)輸出,然后再重定向到 /dev/null,例如:
# ls >/dev/null 2>&1
注意:此處的順序不能更改,否則達(dá)不到想要的效果,此時先將標(biāo)準(zhǔn)輸出重定向到 /dev/null,然后將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出,由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null,因此標(biāo)準(zhǔn)錯誤也會重定向到/dev/null,于是一切靜悄悄:-)
另外+:
make >& make_log
意思是把標(biāo)準(zhǔn)輸出和錯誤輸出都重定向, make>out 只重定向標(biāo)準(zhǔn)輸出!!!!!
>log 表示把標(biāo)準(zhǔn)輸出重新定向到文件log中
>& log 表示把標(biāo)準(zhǔn)輸出和錯誤輸出都定向到文件log中,相當(dāng)于 >log 2>&1