LINUX 中 重定向 小於號
linux中經常會用到將內容輸出到某檔案當中,只需要在執行命令後面加上>或者>>號即可進入操作。
大於號:將一條命令執行結果(標準輸出,或者錯誤輸出,本來都要列印到螢幕上面的)重定向其它輸出裝置(檔案,開啟檔案操作符,或印表機等等)
小於號:命令預設從鍵盤獲得的輸入,改成從檔案,或者其它開啟檔案以及裝置輸入
>> 是追加內容
> 是覆蓋原有內容
示例:
bogon:Desktop wenxuechao$ echo 'abc' > test.txt bogon:Desktop wenxuechao$ echo '123' >> test.txt 執行效果,第一句命令會在桌面建立個test.txt的檔案,並且將abc寫到檔案中。 第二句命令,會在檔案下方,再次寫入內容。
例如我們要將一個資料夾的內容儲存到文字檔案中去,也就是將ls命令打印出來的內容都寫到文字中去可以這樣:
ls -al >> a.txt
這樣a.txt檔案中就是ls命令打印出來的內容了
<小於號
mysql -u root -p -h test < test.sql 匯入資料
另外解釋一下命令?“ls ?>/dev/null ?2>&1”
按照前面的解釋可以知道將ls程式執行輸出的結果重定向到/dev/null檔案中去,後面的2 > &1有是什麼意思呢?
這裡有必要將上面的這個命令完整形式寫出來:
ls ?1 >/dev/null ?2>&1
可以看出和原來命令的區別。先來說明一下,Linux系統中
0:表示鍵盤輸入(stdin) 1:表示標準輸出(stdout),系統預設是1? 2:表示錯誤輸出(stderr)
所以1 > /dev/null 表示將1(標準輸出)重定向到/dev/null檔案,將2(標準錯誤輸出)重定向到1。2>&1表示的是2的輸出重定向等同於1 的輸出重定向,也就是/dev/null檔案。如果寫成這種形式:
ls ?1 >/dev/null ?2>1
其實也能實現標準錯誤輸出的重定向,但是重定向的位置不是標準輸出,而是檔案“1”,系統會建立一個檔案“1”然後儲存標準錯誤輸出的資訊。