輸入&輸出重定向符號 (Input & Output Streams) | Linux
輸入&輸出重定向符號 (Input & Output Streams)是許多程式在運行時,輸出log或是判斷發生error的常用方式,這個章節的技巧對於日常的系統運維可說是至關重要。
名稱 | syntax | 用途 |
---|---|---|
standard out (stdout) | 1> | 通常用在輸出正常訊息 |
standard error (stderr) | 2> | 通常用在輸出錯誤訊息 |
standard in (stdin) | < | 從文檔中讀書資料 |
輸入重定向(stdin):
是一個標準輸入重定向符號,它的作用是把命令的輸出寫入到指定的文件中。通常,用戶通過鍵盤提供輸入。例如,使用cat命令連接文件時,內容是從輸入重定向讀取的。
輸出重定向(stdout和stderr):
輸出重定向處理命令生成的數據。標準輸出重定向(stdout)顯示常規命令輸出。
標準錯誤串流(stderr):
用於通信錯誤消息和警報。重定向和操作這些錯誤信息的去向。
範例:
# 將stdout重定向到文件
ls -lsah > output.txt
# 將stdout和stderr都重定向到文件
ls -lsah > output.txt 2>&1
# 如果輸出正確就輸出到ls.txt檔案,如果有錯誤就輸出到ls-error.txt中(替換,會覆蓋掉原本的內容)
ls -lsah 1> ls.txt 2> ls-error.txt
# 如果輸出正確就輸出到ls.txt檔案,如果有錯誤就輸出到ls-error.txt中(不替換,向下添加)
ls -lsah 1>> ls.txt 2>> ls-error.txt
# 不管對或是錯都往ls.txt輸出(替換,會覆蓋掉原本的內容)
ls -lsah &> ls.txt
# 不管對或是錯都往ls.txt輸出(不替換,向下添加)
ls -lsah &>> ls.txt
# 如果不想要保存可以丟到 /dev/null,就像丟到黑洞裡,實際上輸出的東西並不會被保存
ls -lsah &>> /dev/null
Tags