shell學習筆記 檔案描述符及重定向

2021-07-11 11:35:42 字數 1949 閱讀 5135

0  ——stdin  標準輸入

1 ——stdout 標準輸出

2 ——stderr 標準錯誤

將輸出文字重定向或儲存到乙個檔案:

$ echo "this is a sample test 1" > temp.txt

$ cat temp.txt

this is a sample test 1

$ echo "this is a sample test 2" >> temp.txt

$ cat temp.txt

this is a sample test 1

this is a sample test 2

$ echo "this is a sample test 2" > temp.txt

$ cat temp.txt

this is a sample test 2

注: 「 > 」 會將etdout 輸出到指定的檔案中,但temp.txt中的內容首先會被清空。

「>>」將標準輸出追加到目標檔案中的尾部。

當使用重定向操作符時,輸出內容不會在終端列印,而是被導向檔案。

>   =   1> ;  >>   == 1>>

/dev/null是乙個特殊的裝置檔案,它接受到的任何資料都會被丟棄。null裝置通常也被稱為「黑洞」

$ ls + > out.txt

ls: cannot access +: no such file or directory

$ ls + 2> out.txt

$ cat out.txt

ls: cannot access +: no such file or directory

$ cmd 2>&1 output.txt    -->等同於 cmd &> output.txt    將stderr轉換成stdout,使得stderr和stdout都被重定向到同乙個檔案

bash: cmd: command not found...

similar command is: 'mcd'

$ cat out.txt

ls: cannot access +: no such file or directory

$ cmd 2> /dev/null   

$ cmd

bash: cmd: command not found...

similar command is: 'mcd'

tee既可以將資料重定向到檔案,還可以提供乙份重定向資料的副本作為後續命令的stdin:

command |tee file1 file2

$ ls -tl

total 2

----------. 1 allen allen 47 apr 27 01:07 out.txt

-rw-rw-r--. 1 allen allen 24 apr 27 00:59 temp.txt

$ cat out.txt temp.txt

cat: out.txt: permission denied

this is a sample test 2

$ cat out.txt temp.txt |tee a.txt |cat -n

cat: out.txt: permission denied

1 this is a sample test 2

$ cat a.txt

this is a sample test 2

$ 標準輸出至a.txt,另外乙份傳遞給 cat.

$ echo who is this |tee -       "-"作為命令的檔名

who is this

who is this

補充:借助重定向,我們可以用cat和管道|來指定我們自己的檔案描述符:

$cat file |cmd

$cmd1 |cmd

將檔案重定向到命令

$ cmd < file

mysql 檔案描述符 檔案描述符

toc 首先,linux的世界裡一切皆為檔案,無論是裝置還是乙個socket連線。檔案又可分為 普通檔案 目錄檔案 鏈結檔案和裝置檔案。檔案描述符 file descriptor 是核心為了高效管理已被開啟的檔案所建立的索引,其是乙個非負整數 通常是小整數 用於指代被開啟的檔案,所有執行i o操作的...

檔案描述符

檔案描述符 是個很小的正整數,它是乙個索引值,指向核心為每乙個程序所維護的該程序開啟檔案的記錄表。檔案描述符的優點 相容posix標準,許多 linux 和unix 系統呼叫都依賴於它。檔案描述符的缺點 不能移植到unix以外的系統上去,也不直觀。基於檔案描述符的輸入輸出函式 open 開啟乙個檔案...

檔案描述符

作業系統程序表中存放各個檔案進行檔案描述 核心 kernel 利用檔案描述符 file descriptor 來訪問檔案。檔案描述符是非負整數。開啟現存盤案或新建檔案時,核心會返回乙個檔案描述符。讀寫檔案也需要使用檔案描述符來指定待讀寫的檔案。目錄檔案描述符概述 如何建立檔案描述符 使用的好處 缺點...