檔案描述符 2 1

2021-07-11 22:05:01 字數 1197 閱讀 9549

看以前的日誌的指令碼都會有command > log.log 2>&1一直都不知道後面的2>&1是什麼意思

最近在看《shell指令碼學習指南》,看到檔案描述符一章的時候,再次看到了這個,一時沒有想明白2>&1這個符號是什麼意思。

檔案描述符0,1,2 是shell 預設的值

描述符含義

0標準輸入

1標準輸出

2標準錯誤輸出

為了更直接的了解2>&1下面舉幾個例子

ls not-exist-dir

#螢幕輸出:ls: cannot access not-exist-dir: no such file or directory

ls not-exist-dir > err.log

#螢幕輸出:ls: cannot access not-exist-dir: no such file or directory

#檢視err.log 為空

ls not-exist-dir > err.log 2>&1

#螢幕沒有輸出

#檢視err.log ls: cannot access not-exist-dir: no such file or directory

咦為什麼ls not-exist-dir > err.log

並沒有把ls: cannot access not-exist-dir: no such file or directory這句錯誤輸出到err.log中

原因是這樣的

ls not-exist-dir > err.log = ls not-exist-dir 1> err.log

把標準輸出(檔案描述符1)重定向 err.log 檔案中

但是ls: cannot access not-exist-dir: no such file or directory這句走的是標準錯誤輸出(檔案描述符2)

所以不會輸出到err.log中去

2>&1把標準錯誤輸出重定向到檔案描述符1中去也就是err.log檔案

最後command > err.log 2>&1就能把標準的輸出和標準錯誤輸出都輸出到err.log中去了

mysql 檔案描述符 檔案描述符

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

檔案描述符

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

檔案描述符

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