linux 檔案重定向

2021-10-22 05:05:21 字數 1533 閱讀 9602

nohup | 所屬包:coreutils

功能說明:該命令可以讓使用者在退出系統之後,繼續於後台中執行程式。注意nohup命令不會自動將程式放到後台執行,因此需要配合shell的特殊字元'&'使用,'&'放在一行指令的最後,如'nohup command &'

要想明白檔案重定向,首先需要理解linux中的所有程序,是有3個預設檔案描述符的,檔案描述符對映到檔案指標,檔案指標指向具體檔案:

fd0 |預設對映到標準輸入檔案指標->(/dev/stdin)

fd1 |預設對映到標準輸出檔案指標->(/dev/stdout)

fd2 |預設對映到標準錯誤檔案指標->(/dev/stderr)

所謂標準輸入檔案,從終端讀取資訊

所謂標準輸出檔案,將結果輸出至終端

所謂標準錯位檔案,將錯誤輸出至終端

所謂重定向,就是改變fd對應的檔案指標

重定向中 檔案有兩種表示方式:'檔名'或者'&檔案描述符'

> |輸出重定向,將[左側]command結果輸入到[右側]檔案

>>|輸出重定向,將[左側]command結果追加到[右側]檔案

< |輸入重定向,將[右側]檔案作為[左側]command的輸入

<<|輸入重定向,從標準輸入中讀入,直到遇到[右側]分界符停止,作為[左側]command的輸入

n>&m |將n對映的檔案修改為[m對映的檔案]

$ cat <111

> 222

> eof

預期輸出

111222

cat file_log等同於

echo 'hello' 1>file_log

1.將fd1對映的檔案修改為file_log

2.執行echo,將'hello'字串寫入fd1對映的file_log檔案

ps:輸出重定向符'>',[左側]預設為fd1

2>/dev/null

1.將fd2對映的檔案修改為/dev/null

2>&1 >/dev/null等同於

2>&1 1>/dev/null

1.將fd2對映的檔案修改為/dev/stdout

2.將fd1對映的檔案修改為/dev/null

>/dev/null 2>&1等同於

1>/dev/null 2>&1

1.將fd1對映的檔案修改為/dev/null

2.將fd2對映的檔案修改為[fd1對映的檔案]

效果:fd1&fd2都對映到/dev/null

ps:此用法較為常見'>/dev/null 2>&1',較為麻煩,故有簡寫:'&>/dev/null'或'>&/dev/null'

標準輸入

read |從鍵盤/檔案中讀取文字行,並賦值給變數

標準輸出

echo |將文字行/變數輸出到標準輸出

cat |將檔案內容輸出到標準輸出

tee |將結果輸出到標準輸出,另乙個副本輸出到相應檔案

檔案重定向

1.重定向標準輸出 不使用系統標準輸出的預設裝置,將輸出結果直接寫在乙個新的檔案中。command file 把標準輸出重定向到file檔案中 command file 把標準輸出重定向到file檔案中 追加在現有內容的後面 command 1 file 把標準輸出重定向到file中 myfile建...

檔案重定向

i j 和 i j 的效果都是把j的指向複製給i。echo hero hero.txt 2 1 這句的意思是,無論是標準輸出還是標準錯誤輸出都會被重定向到hero.txt中,具體過程 1的指向由con轉為 hero.txt,2 1 是把1的指向複製給2,此時2的指向也變為了hero.txt,因此1和...

檔案重定向

從乙個檔案,讀取資料,再輸出,一般在 裡實現就是用,如 使用檔案重定向會更加方便。include int main return0 一段非常簡單的輸入輸出資料的 編譯,生成test.exe。在命令視窗,在test.exe根目錄下,輸入 testout.txt 就可以實現讀取data.txt裡面的資料...