[隱藏]
7參考資料
檔案描述符(file descriptor),是程序對其所開啟檔案的索引,形式上是個非負整數。類 unix 系統中,常用的特殊檔案描述符如下:
檔案描述符
名稱常用縮寫
預設值0
標準輸入
stdin鍵盤1
標準輸出
stdout螢幕2
標準錯誤輸出
stderr螢幕
我們在簡單地用 (下面會詳細介紹)。
管道 (「|」, pipe line),把上乙個命令的 stdout 接到下乙個命令的 stdin;
tee 命令的作用是在不影響原本 i/o 的情況下,將 stdout 複製乙份到檔案去;
把cmd命令的輸出重定向到檔案file中。如果file已經存在,則清空原有檔案,使用bash的
noclobber選項可以防止覆蓋原有檔案。
把cmd命令的輸出重定向到檔案file中,如果file已經存在,則把資訊加在原有檔案後面。
使cmd命令從file讀入
從命令列讀取輸入,直到乙個與text相同的行結束。除非使用引號把輸入括起來,此模式將對輸入內容進行shell變數替換。如果使用 <
把word(而不是檔案word)和後面的換行作為輸入提供給cmd。
以讀寫模式把檔案file重定向到輸入,檔案file不會被破壞。僅當應用程式利用了這一特性時,它才是有意義的。
功能同》,但即便在設定了
noclobber時也會覆蓋file檔案,注意用的是|而非一些書中說的!,目前僅在csh中仍沿用》!實現這一功能。
使用檔案描述符的重定向都使用了&符號。
cmd >&n
把輸出送到檔案描述符n
cmd m>&n
把輸出 到檔案符m的資訊重定向到檔案描述符n
cmd >&-
關閉標準輸出
cmd
輸入來自檔案描述符n
cmd m
m來自檔案描述各個n
cmd
關閉標準輸入
cmd
移動輸入檔案描述符n而非複製它。(需要解釋)
cmd >&n-
移動輸出檔案描述符 n而非複製它。(需要解釋)
注意:>&實際上覆制了檔案描述符,這使得
ls > dirlist 2>&1與
ls 2>&1 > dirlist的效果不一樣。
man bash的redirection節中提及了這段內容。
cmd 2>file
把檔案描述符2重定向到file,即把錯誤輸出存到file中。
cmd > file 2>&1
把標準錯誤重定向到標準輸出,再重定向到file,即stderr和stdout都被輸出到file中
cmd &> file
功能與上乙個相同,更為簡便的寫法。
cmd >& file
功能仍與上乙個相同。
cmd > f1 2>f2
把stdout重定向到f1,而把stderr重定向到f2
tee files
把stdout原樣輸出的同時,複製乙份到files中。
tee files
把stderr和stdout都輸出到files中,同時輸出到螢幕。
template:bash重定向例項
下面的一些用法並不屬於重定向的範疇,但和重定向較為類似。
bash在某些系統中的特性,可以將輸入輸出轉到另乙個程式中去,可以同時輸出個多個程式,使用方法(list)或
:
wget巧妙地同時完全了sha-1和md5校驗工作。-o - \
|tee>
(sha1sum > ***.sha1) \
>
(md5sum > ***.md5) \
> ***.iso
↑tee invocation
Bash的輸入輸出重定向
此頁由linux wiki使用者 chenxing於2012年7月21日 星期六 20 55的最後更改。隱藏 7參考資料 檔案描述符 file descriptor 是程序對其所開啟檔案的索引,形式上是個非負整數。類 unix 系統中,常用的特殊檔案描述符如下 檔案描述符 名稱 常用縮寫 預設值 0...
輸入輸出重定向
使用標準輸入流,標準輸出流和標準錯誤流,這些標準流都被預分配給鍵盤和顯示器。在需要的時候,可以使用重定向臨時改變這些預設分配。重定向是這樣一種過程,我們借助它指定乙個用於替代某個 標準檔案的檔案。輸入重定向 可以將標準輸入從鍵盤重定向到任何文字檔案。輸入重定向運算子為小於號 意味著該命令從此給 派的...
輸入輸出重定向
1.標準輸入的控制 語法 命令 檔案將檔案做為命令的輸入。例如 mail s mail test wesongzhou hotmail.com file1 將檔案file1 當做信件的內容,主 題名稱為mail test,送給收信人。2.標準輸出的控制 語法 命令 檔案將命令的執行結果送至指定的檔案...