通常是用檔案或命令的執行結果來代替鍵盤作為新的輸入裝置,而新的輸出裝置通常指的就是檔案。
命令符號格式 | 作用 |
---|---|
命令 < 檔案 | 將指定檔案作為命令的輸入裝置 |
命令 << 分界符 | 表示從標準輸入裝置(鍵盤)中讀入,直到遇到分界符才停止(讀入的資料不包括分界符),這裡的分界符其實就是自定義的字串 |
命令 < 檔案 1 > 檔案 2 | 將檔案 1 作為命令的輸入裝置,該命令的執行結果輸出到檔案 2 中。 |
[[email protected] ~]# cat /etc/passwd
#這裡省略輸出資訊,讀者可自行檢視
[[email protected] ~]# cat < /etc/passwd
#輸出結果同上面命令相同
[[email protected] ~]# cat << 0
>c.biancheng.net
>Linux
>0
c.biancheng.net
Linux
[[email protected] ~]# cat a.txt
[[email protected] ~]# cat < /etc/passwd > a.txt
[[email protected] ~]# cat a.txt
#輸出了和 /etc/passwd 檔案內容相同的資料
[[email protected] ~]# touch demo1.txt
[[email protected] ~]# ls -l demo1.txt
-rw-rw-r--. 1 root root 0 Oct 12 15:02 demo1.txt
[[email protected] ~]# ls -l demo2.txt <-- 不存在的檔案
ls: cannot access demo2.txt: No such file or directory
在此基礎上,標準輸出重定向和錯誤輸出重定向又分別包含清空寫入和追加寫入兩種模式。因此,對於輸出重定向來說,其需要用到的符號以及作用如表 2 所示。再次強調,要想把原本輸出到螢幕上的資料轉而寫入到檔案中,這兩種輸出資訊就要區別對待。
命令符號格式 | 作用 |
---|---|
命令 > 檔案 | 將命令執行的標準輸出結果重定向輸出到指定的檔案中,如果該檔案已包含資料,會清空原有資料,再寫入新資料。 |
命令 2> 檔案 | 將命令執行的錯誤輸出結果重定向到指定的檔案中,如果該檔案中已包含資料,會清空原有資料,再寫入新資料。 |
命令 >> 檔案 | 將命令執行的標準輸出結果重定向輸出到指定的檔案中,如果該檔案已包含資料,新資料將寫入到原有內容的後面。 |
命令 2>> 檔案 | 將命令執行的錯誤輸出結果重定向到指定的檔案中,如果該檔案中已包含資料,新資料將寫入到原有內容的後面。 |
命令 >> 檔案 2>&1 或者 命令 &>> 檔案 |
將標準輸出或者錯誤輸出寫入到指定檔案,如果該檔案中已包含資料,新資料將寫入到原有內容的後面。注意,第一種格式中,最後的 2>&1 是一體的,可以認為是固定寫法。 |
[[email protected] ~]# cat Linux.txt > demo.txt
[[email protected] ~]# cat demo.txt
Linux
[[email protected] ~]# cat Linux.txt > demo.txt
[[email protected] ~]# cat demo.txt
Linux <--這裡的 Linux 是清空原有的 Linux 之後,寫入的新的 Linux
[[email protected] ~]# cat Linux.txt >> demo.txt
[[email protected] ~]# cat demo.txt
Linux
Linux <--以追加的方式,新資料寫入到原有資料之後
[[email protected] ~]# cat b.txt > demo.txt
cat: b.txt: No such file or directory <-- 錯誤輸出資訊依然輸出到了顯示器中
[[email protected] ~]# cat b.txt 2> demo.txt
[[email protected] ~]# cat demo.txt
cat: b.txt: No such file or directory <--清空檔案,再將錯誤輸出資訊寫入到該檔案中
[[email protected] ~]# cat b.txt 2>> demo.txt
[[email protected] ~]# cat demo.txt
cat: b.txt: No such file or directory
cat: b.txt: No such file or directory <--追加寫入錯誤輸出資訊