Shell重定向&>file、2>&1、1>&2的區別
轉載:
https://blog.csdn.net/heifan2014/article/details/53747840
shell上:
0表示標準輸入
1表示標準輸出
2表示標準錯誤輸出
預設為標準輸出重定向,與 1> 相同
2在這裡插入程式碼片>&1 意思是把 標準錯誤輸出 重定向到 標準輸出.
&>file 意思是把 標準輸出 和 標準錯誤輸出 都重定向到檔案file中
用例子說話:
grep da * 1>&2
rm -f $(find / -name core) &> /dev/null
上面兩例中的 & 如何理解,&不是放到後臺執行嗎?
牛解:
1.&>file或n>&m均是一個獨立的重定向符號,不要分開來理解。
2.明確檔案和檔案描述符的區別。
3.&>file表示重定向標準輸出和錯誤到檔案
例如:
rm -f $(find / -name core) &> /dev/null,/dev/null是一個檔案,這個檔案比較特殊,所有傳給它的東西它都丟棄掉。
4.n>&m表示使檔案描述符n成為輸出檔案描述符m的副本。這樣做的好處是,有的時候你查詢檔案的時候很容易產生無用的資訊,如:2> /dev/null的作用就是不顯示標準錯誤輸出;另外當你執行某些命令的時候,出錯資訊也許很重要,便於你檢查是哪出了毛病,如:2>&1
例如:
注意,為了方便理解,必須設定一個環境使得執行grep da *命令會有正常輸出和錯誤輸出,然後分別使用下面的命令生成三個檔案:
grep da * > greplog1
grep da * > greplog2 1>&2
grep da * > greplog3 2>&1 //grep da * 2> greplog4 1>&2 結果一樣
#檢視greplog1會發現裡面只有正常輸出內容
#檢視greplog2會發現裡面什麼都沒有
#檢視greplog3會發現裡面既有正常輸出內容又有錯誤輸出內容
相關文章
- Linux 輸出重定向 2>&1 , 1>&2Linux
- Linux命令- echo、grep 、重定向、1>&2、2>&1的介紹Linux
- 2>/dev/null和>/dev/null 2>&1和2>&1>/dev/null的區別devNull
- [shell]>/dev/null 2>&1 的作用devNull
- struts1與struts2的區別
- Linux Shell 1>/dev/null 2>&1 含義LinuxdevNull
- Linux shell中2>&1的含義Linux
- shell中變數$#,$@,$0,$1,$2的含義變數
- Hadoop1.x與Hadoop2的區別Hadoop
- 小米手環1代與2代區別 小米手環2與1代對比評測
- 理解 shell 指令碼中的常見用法: 2>&1指令碼
- shell 中的>/dev/null 2>&1 是什麼鬼?devNull
- 【Struts】:Struts1和Struts2的區別與聯絡
- rman的level 0 1 2級備份有什麼區別?
- MVC4 razor與aspx的區別以及用法1,2MVC
- 人工智慧與區塊鏈:1+1>2人工智慧區塊鏈
- shell指令碼中/dev/null 2>&1詳解指令碼devNull
- R1-007 Shell變數簡介2變數
- hadoop1.x和2.x的一些主要區別Hadoop
- (轉)Telnet、SSH(SSH1和SSH2)之間的區別
- 手機充電器5V2A和5V1A的區別,5V2A和5V1A充電器可以通用嗎?
- 2-1
- 幽默:請不要用“型別1 2 3 ..”來區分事物 - Martin Fowler型別
- 小米手環1和小米手環2區別對比評測
- Redis 主從複製 psync1 和 psync2 的區別Redis
- 【java web】--JSP model1和model2的聯絡和區別JavaWebJS
- 刷刷手環2代與刷刷手環1代的區別 刷刷手環2代升級詳解
- Shell標準輸出、標準錯誤 >/dev/null 2>&1devNull
- 蘋果m2晶片和m1到底有什麼區別?蘋果晶片
- Angular 2 Decorators – 1Angular
- >/dev/null 2>&1devNull
- 堅果R1對比Pro2區別對比導購 堅果R1和堅果Pro2哪個好?
- 高仿包和1:1包區別
- 轉發和重定向的區別?
- 轉發與重定向的區別
- 中興Blade A2與中興BladeA1區別對比評測
- SAP中MRP型別 P1,P2,P3,P4,PD的區別型別
- buffer 與cache 的區別2