一、什麼是重定向
在Linux中,每個命令都會有標準輸入、標準輸出和標準錯誤。標準輸入通常是鍵盤輸入,標準輸出通常是顯示器輸出,而標準錯誤通常是顯示器輸出。
但是在實際應用中,我們可能需要將命令執行的結果保存到文件中或者將文件的內容作為命令的輸入。這時就需要用到重定向。
Linux重定向允許用戶改變標準輸入、標準輸出和標準錯誤的方向。通俗的說,就是可以將命令的輸出結果重定向成要保存的文件,或將文件里的內容輸入到命令中。
二、輸出重定向
輸出重定向可以將命令的結果輸出到文件而不是顯示器上。可以用>符號將結果輸出到一個文件中,例如:
$ ls > file.txt
這樣,ls命令輸出的結果就保存到了file.txt這個文件中。如果file.txt不存在,則會創建一個。
除此以外,還可以用>>符號將結果追加到文件的末尾,例如:
$ echo "hello world" >> file.txt
這樣,”hello world”這個字符串就被追加到了file.txt文件的末尾。
三、輸入重定向
輸入重定向可以將文件中的內容作為命令的輸入,可以用<符號將文件內容輸入到命令中,例如:
$ uniq < file.txt
這樣,uniq命令的輸入就是file.txt這個文件的內容。
四、錯誤重定向
錯誤重定向可以將錯誤信息輸出到文件而不是顯示器上。可以用2>符號將錯誤信息輸出到一個文件中,例如:
$ ls /bin/usr 2> error.txt
這樣,錯誤信息就會被輸出到error.txt文件中。
不過需要注意的是,如果想同時將標準輸出和錯誤輸出都保存到文件中,可以用2>&1符號,例如:
$ ls /bin/usr > file.txt 2>&1
五、管道符
管道符|是用來將一個命令的輸出直接作為另一個命令的輸入的。例如:
$ ls | wc -l
這裡,ls命令的輸出結果將會作為wc -l命令的輸入。wc -l是一個用來計算行數的命令,所以這個命令的輸出結果就是當前目錄下的文件和文件夾的數量。
管道符可以將多個命令鏈接在一起,形成管道鏈。例如:
$ ls | grep file | wc -l
這裡,首先執行ls命令獲取當前目錄下的所有文件和文件夾,然後將文件名中包含file的文件過濾出來,最後統計這些文件的數量。
總結
Linux重定向在日常工作中非常常見。通過合理使用輸出重定向、輸入重定向、錯誤重定向和管道符,可以提高工作效率,減少人工干預,使工作更加智能化。
原創文章,作者:WFSRY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/372849.html