檔案描述符與重定向

2022-01-29 02:32:53 字數 1354 閱讀 2555

1:標準輸出和標準錯誤重定向

2:利用《操作符將檔案讀入stdin

3:自定義檔案描述符

4:tee命令

1:例如echo命令就是將指定的字串送到標準輸出,那麼我們就可以結合echo命令將指定字串傳送到指定的檔案:

在這裡就是將檔案描述符stdout(1)的內容通過重定向操作符重定向到了test.txt檔案裡。

在處理錯誤時,來自stderr的輸出被傾倒入了檔案/dev/null中,/dev/null是乙個特殊的裝置檔案,他會丟棄接收到的任何資料。也常被稱為黑洞,因為但是進入其中的資料都將一去不復返。同樣的我們可以將標準錯誤輸出也重定向到檔案中,以供儲存。

接下來這個命令會將stderr文字列印到螢幕上,而不是重定向到文字中,因為預設情況下重定向操作符針對的是標準輸出,而這裡stdout並沒有輸出,而是stderr輸出

在重定向操作符前指定stderr檔案描述符,就可以重定向stderr了

2: 從stdin讀取輸入的命令能以多種方式接收資料:

借助小於符號,我們可以像使用stdin那樣讀取檔案中資料: cmd

還有使用管道時,經常將前乙個命令的標準輸出重定向成下乙個命令的標準輸入,cmd1 | cmd2。

3:使用exec命令建立乙個用於讀取的檔案描述符(符號&表明後邊的數字是乙個檔案描述符):

建立乙個用於寫入的檔案描述符:

4:標準輸出既可以被重定向到檔案,也可以通過管道傳入其他程式,但不能同時進行,命令tee可以實現這個操作,tee命令從stdin讀取,將資料重定向到檔案中,然後還將資料重定向到標準輸出(stdout)中:cmd | tee file1 file2 | othercmd

例如ls命令列出和cat命令檢視檔案內容的結果均為標準輸出:

-a 指定以追加的方式儲存到檔案

本知識點需了解exec命令,以及對檔案的開啟模式,標準輸入輸出的初步了解。

檔案描述符 輸出重定向

對於核心而言,所有開啟的檔案都是通過檔案描述符引用的。那麼檔案描述符又是什麼呢?通過上圖,我們可以清楚的認識到檔案描述符就是從0開始的小的非負整數,核心用以標識乙個特定程序正在訪問的檔案。當開啟乙個檔案或建立乙個檔案,核心向程序返回乙個檔案描述符。linux程序預設情況下會有三個預設開啟的檔案描述符...

Linux 檔案描述符,檔案重定向

檔案重定向 先來說說檔案 當我們開啟乙個檔案時,作業系統為了管理該檔案,會建立乙個資料結構來描述它,記錄他的各種資訊,這個資料結構就是file結構體,乙個file結構體就表示了乙個已經開啟的檔案。程序中使用open函式開啟某個檔案,前提是需要我們將程序與檔案聯絡起來。所以程序pcb中就有乙個 fil...

Linux 檔案描述符和重定向

1.預備知識 標準輸入 stdin 標準輸出 stdout 和標準錯誤 stderr 是編寫指令碼的時候經常使用的,因為輸出的資訊可能是上述的一種。檔案描述符 是與開啟的某個檔案或者資料流相關聯的整數。檔案描述符0,1,2是系統預留的。2.例項echo this is a sample.temp.t...