|
這個命令列出/dev目錄下的所有文件,在屏幕上輸出結果。
這里 /dev 就是作為命令 ls 的標準輸入(從鍵盤輸入),而打印在屏幕的結果就是標準輸出(/dev 目錄中的內容)
還是回到標題,重定向就是把標準的輸入或者輸出更改成其他的方式,請參看如下例子
或者等同于
|
|
也可以把標準錯誤重新定向到文件
|
顯然 -qw 是一個錯誤參數,通常會在顯示器上報告一個錯誤信息,但由于把 2 標準錯誤(stderr)重新定向到了文件 filename,因此顯示器沒有錯誤信息,而信息寫到了文件里面
以下命令是把標準輸出和錯誤都定向到文件
|
"&" 在這里代表標準輸出和標準錯誤,這里無論是正常輸出還是錯誤信息都寫到 filename 中了。
重新定義標準輸入,輸出,和錯誤的文件標識符。
重新定義文件標識符可以用 i>&j 命令,表示把文件標識符 i 重新定向到 j,你可以把 "&" 理解為 "取地址"。
請看以下例子
|
表示把文件標識符 5 定向到標準輸出,這個命令通常用來臨時保存標準輸入。
同樣標準輸入也是可以重新定向的,請參考下面例子
|
一般來說 grep 命令在給定文件中搜索字符串,以上命令把文件 filename 作為 grep 命令的標準輸入,而不是從鍵盤輸入。
前面曾經提到,系統為每一個打開的文件指定一個文件標識符以便系統對文件進行跟蹤,那么默認的文件標識符是什么呢?答案是 0,也就是標準輸入,或者可以說從鍵盤輸入。當然這個文件標識符也可以自己指定,請參考下面例子
|
現在 cat filename 文件的結果就成了 1234.6789
|
有關關閉文件標識符的操作請參考下面
|
另外還有一些其他命令,如下參考
|
表示把文件filename設置成空,也就是清空文件內容,如果文件不存在,則創建一個空文件,(等同于touch命令) :表示一個空輸出,兩個命令的唯一區別就是>filename不是在所有shell都可以正常工作的。