91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Linux中怎么實現重定向

發布時間:2021-06-23 15:16:12 來源:億速云 閱讀:312 作者:Leah 欄目:系統運維

這篇文章將為大家詳細講解有關Linux中怎么實現重定向,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Linux 中的數據流

談到 Linux 的重定向,就不得不提以下這3種數據流:

  • 輸入信息會從 stdin 中讀取(標準輸入,通常是鍵盤或鼠標)。

  • 輸出信息會被輸出到 stdout (標準輸出,一個文本文件或者數據流)。

  • 錯誤信息會被輸出到 stderr。

了解了這些數據流的存在,在你使用 Shell 時,你就可以更好地控制數據的流向了。

在 Linux 系統中,標準輸入,標準輸出以及標準錯誤都作為文件存在。你可以在 /dev 目錄下看到它們:

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

重定向輸出

在 Linux 系統中,使用 > 字符表示重定向輸出。例如,將 ls 命令的輸出重定向到一個文件中:

$ ls > list.txt

執行以上命令后,屏幕上并不會顯示 ls 命令的輸出信息,因為輸出信息已經被重定向至 list.txt 文件中了。

除此之外,重定向還有許多用途,它還可以用于復制文件的內容,而且不限于復制文本文件,二進制文件也可以復制:

$ cat image.png > picture.png

如果你想要將一個文件的內容復制到另一個文件的末尾,你只需將 > 字符換成 >> 字符串即可,像這樣:

$ cat lxlinux >> alvi

重定向輸入

與重定向輸出相反,重定向輸入使用的是 < 字符。

輸入重定向可以將輸入信息重定向至命令中作為參數使用。該功能可能比較少用,但是,當命令需要一個參數列表時,而這些參數都存在一個文件中,然后你想快速地將它們從文件中復制粘貼到終端,這時這個功能就能派上用場了。

例如,package.list 里記錄了你需要安裝的包的列表,而你想要快速地安裝所有的包,只需執行以下這一條命令,就能一次性安裝 package.list  里的所有包:

$ sudo dnf install $(<package.list)

輸入重定向的常見用法是 Here-document (簡稱 Here-doc) 以及 Here-string 。

Here-doc 將輸入的文本塊重定向至標準輸入流,直至遇到特殊的文件結束標記符為止(文件結束標記符可以是任意的唯一的字符串,但大部分人都默認使用  EOF)。

你可以嘗試在終端輸入以下命令(直到第二個 EOF 字符串結束):

$ cat << EOF > alvin > lxlinux.net > EOF

預期的輸出應該是這樣的:

alvin lxlinux.net

Here-doc 是 Bash 腳本編寫者們將多行文本轉儲到文件或屏幕上的常用技巧。

Here-string 與 Here-doc 相似,但是它只有一個字符串,或者幾個被引號括起來的字符串:

$ cat <<< alvin alvin $ cat <<< "alvin lxlinux.net" alvin lxlinux.net

重定向錯誤信息

錯誤信息默認會進入叫 stderr 的流,使用 2> 可以對其進行重定向。例如,將錯誤信息重定向到名為 output.log 的文件中:

$ ls /nope 2> output.log

重定向數據至 /dev/null

就像標準輸入、標準輸出以及標準錯誤一樣,在 Linux 文件系統中,空,也存在一個文件與之對應,它叫做 null ,放在 /dev  目錄下。為了方便讀,人們經常省略斜杠,直接把他讀作 dev null 。

/dev/null 并不保存數據,被寫入 /dev/null 的數據最終都會丟失,就像被丟進虛空中一樣。因此,你可以使用重定向將不需要的數據輸送到  /dev/null 。例如,find 命令的輸出往往很冗長,而且在搜索文件時還經常會報告權限沖突的錯誤,像這樣:

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

這時,你就可以將錯誤信息重定向到 /dev/null ,以過濾掉不必要的信息,像這樣:

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

關于Linux中怎么實現重定向就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

宣城市| 开江县| 苏尼特左旗| 陇南市| 平遥县| 清镇市| 界首市| 深泽县| 金华市| 蒲城县| 阿坝| 明溪县| 永福县| 陵水| 万载县| 东莞市| 且末县| 尚志市| 峡江县| 卢湾区| 当涂县| 瓦房店市| 柳江县| 安宁市| 基隆市| 军事| 兴安县| 沂源县| 本溪| 镇巴县| 溆浦县| 怀宁县| 贵德县| 博白县| 买车| 曲靖市| 清流县| 扎囊县| 鹤岗市| 桐柏县| 尼木县|