重定向內容介紹
一條shell命令的執行包含三個文件描述符:標准輸入(鍵盤等) stdin 0,標准正確輸出(屏幕等) stdout 1,標准錯誤輸出(屏幕等)stderr 2
通過重定向可以指定輸入的文件內容和輸出到的位置

符號 | 說明 |
< file | 輸入重定向,將<后的file文件內容作為command執行前的輸入 |
> file 或1>file | 輸出重定向,將標准正確輸出覆蓋到后面的file文件內 |
>> file或1>>file | 輸出重定向,將標准正確輸出追加到后面的file文件內 |
2>file | 輸出重定向,將標准錯誤輸出覆蓋到后面的file文件內 |
2>>file | 輸出重定向,將標准錯誤輸出追加到后面的file文件內 |
&>file 或 >file 2>&1 | 輸出重定向,將標准正確輸出和標准錯誤輸出覆蓋到后面的file文件內 |
&>>file 或 >>file 2>&1 | 輸出重定向,將標准正確輸出和標准錯誤輸出追加到后面的file文件內 |
重定向執行順序
shell會按照;等分隔符將一串命令分成多個命令,替換命令中的變量后執行單條命令
shell單條命令,重定向部分的執行順序:先<,然后command,最后<和<<
第一步:先讀取<后的內容做為輸入,如果一條命令有多個<,會讀取最后一個<后的內容
<放在命令前后都可以,例如【< /etc/hosts cat】相當於【cat /etc/hosts】
第二步:執行command命令
第三步:如果有>或>>會將結果進行重定向,如果輸出重定向多個文件,只會將內容重定向到最后一個文件
例如 cat /etc/hosts > test1.txt >test2.txt
只有test2.txt會出現內容,test1.txt內容是空的
輸出重定向>和>>的位置放在哪里都可以,例如【> test.txt cat /etc/hosts】,表示將/etc/hosts的內容輸入到test.txt中
參考文檔: