重定向即指:將資料傳送輸出到別的地方,如裝置、檔案等等。那就涉及到將什麼資料傳送到什麼地方的問題。
在linux中命令執行的起源和結果說起,看下圖:
standard input和standard error都會輸出到螢幕上,這樣會將螢幕搞的非常混亂,且又是輸出內容過多也不易於閱讀。甚至有時候的輸出內容非常重要需要儲存,這是該怎麼辦??
答案是:資料重定向,將輸出內容匯入到別的地方。
linux中資料重定向的特殊符號:
>和》的區別在於,輸出內容重導向目的地的方式不一樣:
>:以覆蓋目的地原有資料的方式重導向
>>:以追加的方式重導向
ls /etc > list
如以上的將列出etc目錄下的檔案將其寫入list檔案。
如果list檔案不存在則建立
清除list檔案內容
將ls的標準輸出寫入list中
如果不清空list,則以追加的方式寫入,使用》
1.只需要正確的資料
使用/dev/null垃圾桶
#將find的結果中錯誤的輸出丟棄,只顯示正確的結果。避免錯誤資料的干擾
find /home -name .bashrc 2> /dev/null
2.既需要正確的輸出又需求錯誤的輸出資料find /home -name .bashrc > list 2>&1
find /home -name .bashrc &> list
以上將標準輸出和標準錯誤都寫入list
3.標準輸入《和《的使用
既然使用
cat > back
以上同時利用 > 和
cat > list
以上命令將會將螢幕輸入(標準輸入)作為輸出重導向檔案list,然後使用ctrl+d退出。但是可以如下寫法:
cat > list << "eof"
這樣只要螢幕上輸入"eof"即可退出。《代表結束輸入。 Linux中重定向
1重定向 1.1 重定向符號 輸出重定向到乙個檔案或裝置 覆蓋原來的檔案 輸出重定向到乙個檔案或裝置 強制覆蓋原來的檔案 輸出重定向到乙個檔案或裝置 追加原來的檔案 輸入重定向到乙個程式 1.2標準錯誤重定向符號 2 將乙個標準錯誤輸出重定向到乙個檔案或裝置 覆蓋原來的檔案 b shell 2 將乙...
Linux中的重定向
1.輸出重定向 command filename 把標準輸出重定向到乙個新檔案中,當filename不存在時 command filename 把標準輸出重定向到乙個檔案中 追加 command filename 2 1 把標準輸出和錯誤一起重定向到乙個檔案中 command filename 2 ...
Linux中的重定向
標準輸入流 stdin 標準輸出流 stdout 標準錯誤 stderr 三個資料流其實就是三個檔案 在linux中檔案是具備檔案描述符的 比如0 1 2,分別對應上面三個流,其他的檔案都是從3開始標號的以此類推,都指向了終端,重定向就是改變其指向。符號 一般是指將輸出的結果指引到某個檔案。比如 l...