您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Linux中如何輸入輸出重定向,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
對于輸入重定向來說,其需要用到的符號以及作用如表1 所示。
命令符號格式 | 作用 |
---|---|
命令 | 將指定文件作為命令的輸入設備 |
命令 | 表示從標準輸入設備(鍵盤)中讀入,直到遇到分界符才停止(讀入的數據不包括分界符),這里的分界符其實就是自定義的字符串 |
命令 文件 2 | 將文件 1 作為命令的輸入設備,該命令的執行結果輸出到文件 2 中。 |
【例 1】 默認情況下,cat 命令會接受標準輸入設備(鍵盤)的輸入,并顯示到控制臺,但如果用文件代替鍵盤作為輸入設備,那么該命令會以指定的文件作為輸入設備,并將文件中的內容讀取并顯示到控制臺。 以 /etc/passwd 文件(存儲了系統中所有用戶的基本信息)為例,執行如下命令:
[root@localhost ~]# cat /etc/passwd #這里省略輸出信息,讀者可自行查看 [root@localhost ~]# cat #輸出結果同上面命令相同
注意,雖然執行結果相同,但第一行代表是以鍵盤作為輸入設備,而第二行代碼是以 /etc/passwd 文件作為輸入設備。
【例 2】
[root@localhost ~]# cat >c.biancheng.net >Linux >0 c.biancheng.net Linux
可以看到,當指定了 0 作為分界符之后,只要不輸入 0,就可以一直輸入數據。
【例 3】 首先,新建文本文件 a.tx,然后執行如下命令:
[root@localhost ~]# cat a.txt [root@localhost ~]# cat a.txt [root@localhost ~]# cat a.txt #輸出了和 /etc/passwd 文件內容相同的數據
可以看到,通過重定向 /etc/passwd 作為輸入設備,并輸出重定向到 a.txt,最終實現了將 /etc/passwd 文件中內容復制到 a.txt 中。
相較于輸入重定向,我們使用輸出重定向的頻率更高。并且,和輸入重定向不同的是,輸出重定向還可以細分為標準輸出重定向和錯誤輸出重定向兩種技術。 例如,使用 ls 命令分別查看兩個文件的屬性信息,但其中一個文件是不存在的,如下所示:
[root@localhost ~]# touch demo1.txt [root@localhost ~]# ls -l demo1.txt -rw-rw-r--. 1 root root 0 Oct 12 15:02 demo1.txt [root@localhost ~]# ls -l demo2.txt ls: cannot access demo2.txt: No such file or directory
上述命令中,demo1.txt 是存在的,因此正確輸出了該文件的一些屬性信息,這也是該命令執行的標準輸出信息;而 demo2.txt 是不存在的,因此執行 ls 命令之后顯示的報錯信息,是該命令的錯誤輸出信息。
再次強調,要想把原本輸出到屏幕上的數據轉而寫入到文件中,這兩種輸出信息就要區別對待。
在此基礎上,標準輸出重定向和錯誤輸出重定向又分別包含清空寫入和追加寫入兩種模式。因此,對于輸出重定向來說,其需要用到的符號以及作用如表 2 所示。
命令符號格式 | 作用 |
---|---|
命令 > 文件 | 將命令執行的標準輸出結果重定向輸出到指定的文件中,如果該文件已包含數據,會清空原有數據,再寫入新數據。 |
命令 2> 文件 | 將命令執行的錯誤輸出結果重定向到指定的文件中,如果該文件中已包含數據,會清空原有數據,再寫入新數據。 |
命令 >> 文件 | 將命令執行的標準輸出結果重定向輸出到指定的文件中,如果該文件已包含數據,新數據將寫入到原有內容的后面。 |
命令 2>> 文件 | 將命令執行的錯誤輸出結果重定向到指定的文件中,如果該文件中已包含數據,新數據將寫入到原有內容的后面。 |
命令 >> 文件 2>&1 或者 命令 &>> 文件 | 將標準輸出或者錯誤輸出寫入到指定文件,如果該文件中已包含數據,新數據將寫入到原有內容的后面。注意,第一種格式中,最后的 2>&1 是一體的,可以認為是固定寫法。 |
上述就是小編為大家分享的Linux中如何輸入輸出重定向了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。