一、基礎重定向操作符
?類別? | ?操作符? | ?含義? | ?示例? | ?備注? |
?標準輸出? |
| 覆蓋寫入 stdout 到文件 |
| 文件不存在則創建,存在則清空內容 |
| 追加 stdout 到文件末尾 |
| 保留原有內容 | |
?標準錯誤? |
| 覆蓋寫入 stderr 到文件 |
| 僅捕獲錯誤信息 |
| 追加 stderr 到文件末尾 |
| 錯誤日志持續累積 | |
?輸入重定向? |
| 從文件讀取 stdin |
| 替代鍵盤輸入 |
| 多行輸入(Here Document) |
| 自定義結束標記 |
二、組合重定向技巧
?類別? | ?操作符/組合? | ?含義? | ?示例? | ?備注? |
?流合并? |
| 合并stdout和stderr到同一文件 |
| 簡寫形式(新版 Bash 支持) |
| 將stderr合并到stdout流 |
| 順序敏感(必須寫在普通重定向后) | |
?流分離? |
| 分離stdout和stderr |
| 獨立記錄兩種輸出類型 |
?管道結合? |
| 過濾錯誤后傳遞有效輸出 |
| 丟棄錯誤信息以提高管道效率 |
?黑洞設備? |
| 丟棄所有輸出 |
| 常用于后臺靜默執行 |
關鍵注意事項:
- ?操作符順序?:合并操作
2>&1
必須寫在普通重定向之后,否則無法生效 - ?覆蓋風險?:
>
會直接覆蓋文件內容,敏感操作建議先備份 - ?追加:
>>
適用于日志累積,可以避免歷史數據丟失