每條指令可以使用三個通道用於輸入或輸出︰
標準輸出. 這是預設的輸出通道。指令進行列印時會使用標準輸出通道。
標準輸入. 如果指令需要使用者或其他指令的輸入,將會使用此通道。
標準錯誤. 指令使用此通道報告錯誤。
要重新指向這些通道,可以使用以下幾種方式︰
指令 > 檔案
將指令輸出儲存為檔案,現有的檔案將會刪除。例如,ls 指令將輸出寫入到檔案 listing.txt 中︰
ls > listing.txt
指令 >> 檔案
將指令輸出附加至檔案。例如,ls 指令將輸出附加至檔案 listing.txt 中︰
ls >> listing.txt
指令 < 檔案
讀取檔案,將其做為指定指令的輸入。例如,read 指令會將檔案內容讀取至變數中︰
read a < foo
指令1 | 指令2
將左邊指令的輸出重新指向為右邊指令的輸入。
每個通道都有一個檔案描述子︰0 (零) 代表標準輸入,1 代表標準輸出,2 代表標準錯誤。您可以將此檔案描述子插入到 < 或 > 字元的前面。例如,下行將搜尋以 foo 開始的檔案,但透過將檔案重新指向至 /dev/null 隱藏了錯誤︰
find / -name "foo*" 2>/dev/null