Linux 命令默認從標准輸入設備(stdio)獲取輸入,將結果輸出到標准輸出設備(stdout)顯示。一般情況下,標准輸入設備是鍵盤。標准輸出設備是終端(顯示器)。
一般情況下,每個命令運行時都會打開3個文件:
輸出輸出重定向
/dev/null文件
/dev/null 是一個特殊的文件,寫入到它內部的內容都會被丟棄。
示例:
$ date > date.txt #將date命令的結果重定向到文件date.txt
$ ll >> date.txt #將ll命令的結果追加到文件date.txt
$ cat < date.txt #將cat命令的輸入重定向到文件date.txt。(即將文件date.txt的內容作為cat的參數)
$ cat < date.txt >date2.txt #將文件date.txt的內容重定向到文件date2.txt中
$ cat << EOF #將從鍵盤輸入的字符串打印到顯示器,直到輸入EOF為止
$ ./test 2 > result.txt #將執行腳本test的錯誤信息重定向到文件result
$ ./test >> result.txt 2>&1 #將執行腳本test的錯誤信息和輸出信息以追加的方式重定向到文件result.txt