Linux Shell 中輸出重導向是將命令原本輸出至終端的標準輸出(stdout)或標準錯誤(stderr)轉向檔案或裝置的技巧,常用於日誌記錄、錯誤捕捉、資料處理管線。
| 符號 | 說明 |
|---|---|
> file | 標準輸出重導向至檔案(覆蓋) |
>> file | 標準輸出附加至檔案 |
2> file | 標準錯誤重導向至檔案 |
2>&1 | 將 stderr 合併至 stdout |
> file 2>&1 | stdout 與 stderr 皆寫入檔案 |
&> file | Bash 簡寫,同上 |
# 將 ls 結果存入檔案
ls -l > filelist.txt
# 錯誤訊息單獨記錄
make 2> error.log
# 正常與錯誤輸出合併記錄
./script.sh > all.log 2>&1
# 忽略所有輸出(丟進黑洞)
noisy_command >/dev/null 2>&1
# 同時顯示並寫入檔案
echo "建置中..." | tee build.log
# 管線中插入 tee 除錯
cat data.txt | grep "error" | tee errors.log | wc -l
善用重導向能讓腳本更健壯、日誌更完整。
