您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關shell中管道 | 、xargs和exec怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
命令行參數:getopt()函數用于解析命令行參數
標準輸入:scanf()/gets()等函數用于獲取標準輸入
管道 |
將前一個命令的輸出作為標準輸入傳給后面的命令,不會用到任何中間文件與緩沖區。
xargs
將前一個命令的輸出作為命令行參數傳給后面的命令。
> 批量創建文件 pi@raspberrypi:~/test $ touch {1..9}.txt pi@raspberrypi:~/test $ ls 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt > 修改 pi@raspberrypi:~/test $ ls *.txt | xargs -n1 -i{} mv {} {}_bak pi@raspberrypi:~/test $ ls 1.txt_bak 2.txt_bak 3.txt_bak 4.txt_bak 5.txt_bak 6.txt_bak 7.txt_bak 8.txt_bak 9.txt_bak
exec
find命令中-exec參數將查詢結果通過命令行參數傳遞給后面的命令。
-exec與xargs不同的是:-exec是將結果逐條傳遞給后面的命令,后面的命令逐條執行。xargs是將結果作為一個列表全部傳遞給后面的命令,后面的命令一次性執行參數串,可以通過xargs -p ls -l來查看即將要執行的完整的命令。
pi@raspberrypi:~/test $ find . -name "*txt*" |xargs -p ls -l rm ls -l rm ./4.txt ./9.txt ./2.txt ./1.txt ./6.txt ./7.txt ./8.txt ./3.txt ./5.txt ?...
目前已知的只能讀取命令行參數的命令有:ls、rm。
通過分析-exec與xargs的不同,就會發現如果在find中使用-exec+ls -lrt的方式,列表并沒有進行排序,若想要排序,可使用xargs+ls -lrt,不過要注意-exec與xargs區別
關于“shell中管道 | 、xargs和exec怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。