1. 程式人生 > >LINUX 中 重定向 小於號

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”然後儲存標準錯誤輸出的資訊。