今天kiddd帶大家學習的是LInux的一個知識內容——redirection,重定向。瞭解重定向之前首先需要知道Linux的三種文件描述符。
輸出重定向
當我們正常執行Linux命令時,Linux命令行會將命令寫入後的輸出,寫入到標準輸出文件當中,並將輸出的結果打印到屏幕上,如:
這種文件叫做標準輸出文件,它到文件描述符爲1。
第二種情況呢,當我們執行錯誤的Linux命令時,Linux會將錯誤命令後的輸出寫入到文件描述符爲2的標準錯誤輸出文件中,並顯示到屏幕上。
而將原本輸出在屏幕上的內容轉而輸出到其他地方——這就是重定向的一個基本的作用。
將標準輸出重定向到某個文件中
如將ls當前目錄的輸出重定向到一個文件中,操作到方法是:ls >xxx.txt
我們打開查看一下,果然,輸出到內容被重定向到了output.txt中
將標準錯誤輸出重定向到某個文件中
標準錯誤輸出的重定向簡單地使用>操作符是行不通的,這時我們就用到了之前學習的知識——加上標準錯誤輸出文件描述符:2。ls XXX 2>output.txt
搞定。
- 將兩個文件合併成一個文件
重定向的另一個作用即合併文件:
xxx file1 file2 >file3
(file1中有hello,file2中有world,file3爲空。重定向後file3中有字符串:hello world)
同時重定向所有輸出:
s &>output.txt
文件存在時,>file ,清空文件。
- 文件不存在時,>file,新建文件。
- 重定向在腳本中的使用:
!/usr/bin/env bash
>output.txt
for dir in /bin/usr /usr/bin
do
ls $dir &>output.txt
done
輸入重定向
除了輸出重定向外,還有輸入重定向,其作用爲:
將某個從鍵盤讀取的輸入重定向到讀取某個文件。
其操作符爲:<
(與輸出重定向剛好相反)
總結
Linux命令是軟件開發者必須掌握的。重定向在日常開發中有很多衍生可以提升效率。另外進階使用及shell變成更是用處多多,更多的等待着你去探索。