十句話教你學會Linux數據流重定向
1、看到重定向一下子就想起了web裡面的redirect,沒錯,但是Linux數據流重定向的作用不是跳到另一個網頁,而是用來存儲重要的屏幕信息、將不必要的屏幕信息輸出到文件裡或者“黑洞”裡、將錯誤信息和正確信息分開存儲,或者只顯示正確信息等等~
2、數據流重定向分為標准輸入(代碼為0,使用<或<<)、標准輸出(代碼為1,使用>或>>)、標准錯誤(代碼為2,使用2>或2>>)輸出這三種。
3、標准輸入 > 例子:ls -l / >dir.txt
表示將根目錄下的所有顯示信息輸出到文件dir.txt裡面
4、如果希望繼續在dir.txt裡面輸出東西,但不覆蓋之前的信息,使用>>,比如ls /home >>dir.txt再看看dir.txt裡面,就會發現末尾多了ls /home的結果。如果使用>的話,就會覆蓋前面的內容哦!>輸出是不能累加的!
5、如果想用另一個文件中的內容輸入到dir.txt,可以這樣 cat > dir.txt <report/build.xml (不保留文件裡原有的內容)或者cat >> dir.txt <report/build.xml (保留文件裡原有的內容)
6、運行shell後,如果想將屏幕信息中正確的和錯誤的信息分別存於兩個文件。比如,系統中並沒有qwert這個文件,但是有dir.txt這個文件,find dir.txt qwert >right_lisit 2>wrong_list 一定要使用2> 輸出錯誤信息
7、有些錯誤事先已經知道了,而且無關緊要,沒有必要在屏幕上顯示,也沒有必要存到文件裡,可以這樣find dir.txt qwert 2>/dev/null
這樣就可以將錯誤信息扔進“黑洞”了~,如果你有興趣可以去/dev/null,看一下~
裡面什麼都沒有的。。。
8、如果想將正確信息和錯誤信息都紀錄下來,find dir.txt qwert >list.txt 2>&1
9、通過> 也可以建立文件哦~ cat > newfile
10、還有一個<<沒有介紹,這個和他的“另一半”>>可不一樣,並不表示累加,而表示輸入的結束。比如:cat > newfile <<"over"
然後你就可以輸入文件的內容啦
12345
上山打老虎
over
執行cat newfile命令,可以看到,文件裡面沒有over字樣哦~,over只是我們自己定義的一個作為輸入結束的標示符而已~