中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過重定向在Linux終端任意讀寫數據

發布時間:2021-12-04 09:27:50 來源:億速云 閱讀:122 作者:小新 欄目:系統運維

這篇文章主要為大家展示了“如何通過重定向在Linux終端任意讀寫數據”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何通過重定向在Linux終端任意讀寫數據”這篇文章吧。


重定向是一種十分高效的數據流動方式,它能幫你減少很多鼠標和鍵盤上的操作。

對于任何編程或腳本語言,輸入與輸出重定向都是很自然的功能。嚴格來說,當你使用電腦時,數據自然而然地在發生著重定向。從 stdin(標準輸入,通常是你的鍵盤或者鼠標)讀取輸入,輸入則發往 stdout(標準輸出,一段文本或者數據流),最后錯誤信息送至 stderr。如果你使用 Bash 或 Zsh 之類的 shell,那么理解這些數據流能夠讓你更好地控制信息流向。

標準輸入、標準輸出以及標準錯誤輸出都存在于 Linux 文件系統中。你可以在 /dev 查看:

$ ls /dev/std*/dev/stderr@  /dev/stdin@  /dev/stdout@

你可能沒法直接使用它們,但將它們想象成你能傳遞數據的元位置,會很有幫助。

重定向的基礎很簡單:用一些 > 符號重定向輸出,然后用另外一些 < 符號重定向輸入。

重定向輸出

將 ls 命令的輸出寫入一個文件:

$ ls > list.txt

你沒法像平常那樣看到 ls 的輸出,因為它們并沒有被發送到屏幕,而是被寫入 list.txt 文件了,這個功能用處太多了,事實上,你甚至可以用它來將文件內容拷貝到另一個文件。不一定是文本文件,你也可以用將重定向用于二進制數據:

$ cat image.png > picture.png

(你可能會好奇為什么要這樣做,有時候對于 文件權限信息 而間接有用。)

重定向輸入

你也能將輸入重定向“到”一個命令。可以說,它沒有重定向輸出那么有用,因為許多命令已經被硬編碼,只從你的參數中接收輸入。但是,如果某個命令需要一系列參數,而且你把這些參數寫在文件里,想要快速“復制粘貼”到終端的時候(除非你并不想復制粘貼),它就幫得上忙了。

$ sudo dnf install $(<package.list)

重定向輸入得常規用法是嵌入文檔here-document(簡寫成 here-doc)和嵌入字符串here-string 技巧。這種輸入方法將一整塊文本重定向至標準輸入流,直到碰見一個特殊的文件結束標記(許多人習慣用 EOF,實際上你可以使用任何字符串,只要它是唯一的)。試著把這些(在第二個 EOF 標記之前)敲進你的終端:

$ echo << EOF> foo> bar> baz> EOF

輸出結果:

foobarbaz

使用 Bash 編寫腳本的人常常用這個技巧,將數行文本一次性寫入文件或者打印到屏幕上。只要你別忘了末尾的文件結束標記,這會是一個幫你避免大量繁瑣 echo 或 printf 語句的好辦法。

嵌入字符串類似于嵌入文檔,但是它只含有一個字符串(或者用引號包裹的幾個字符串,同樣會被當成一個字符串)

$ cat <<< "foo bar baz"foo bar baz

重定向錯誤信息

錯誤信息流叫做 stderr,通過 2> 實現這個目的。下面這個命令把錯誤信息定向到 output.log 文件:

$ ls /nope 2> output.log

將數據送往 /dev/null

既然標準輸入、標準輸出和錯誤輸出都有自己的位置,那么“空空如也”也應該在 Linux 文件系統占有一席之地。沒錯,它叫做 null,位于 /dev,頻繁使用的人懶得說 “slash dev slash null”,于是索性叫它 “devnull”。

通過重定向,你可以把數據發送到 /dev/null。比如,find 命令常常會輸出很多具體信息,而且在搜索文件遇到權限沖突時,會事無巨細地報告:

$ find ~ -type f/home/seth/actual.filefind: `/home/seth/foggy': Permission deniedfind: `/home/seth/groggy': Permission deniedfind: `/home/seth/soggy': Permission denied/home/seth/zzz.file

find 命令把那些當作錯誤,所以你可以只把錯誤信息重定向至 /dev/null

$ find ~ -type f 2>; /dev/null/home/seth/actual.file/home/seth/zzz.file

使用重定向

在 Bash 中,重定向是轉移數據的有效方法。你可能不會頻繁使用重定向,但是學會如何使用它,能幫你在打開文件、復制粘貼數據這類需要移動鼠標、大量按鍵操作上,節省很多不必要的時間。不要做如此浪費時間的事情。使用重定向,好好享受生活。

以上是“如何通過重定向在Linux終端任意讀寫數據”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万载县| 宝山区| 肥东县| 措美县| 通州市| 陆河县| 牟定县| 紫阳县| 巴中市| 荥经县| 石棉县| 夏津县| 锡林郭勒盟| 武定县| 岱山县| 霍城县| 鱼台县| 察雅县| 舒城县| 仪陇县| 兴和县| 德保县| 龙江县| 广水市| 大荔县| 四子王旗| 商丘市| 三江| 句容市| 桐柏县| 乌鲁木齐市| 闽清县| 铅山县| 庐江县| 余姚市| 林口县| 涞水县| 双江| 新和县| 浦北县| 韩城市|