將前一個命令的輸出做爲標準輸入傳給後面的命令,不會用到任何中間文件與緩衝區。函數
將前一個命令的輸出做爲命令行參數傳給後面的命令。命令行
> 批量建立文件 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
find命令中-exec參數將查詢結果經過命令行參數傳遞給後面的命令。code
-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。get
經過分析-exec與xargs的不一樣,就會發現若是在find中使用-exec+ls -lrt的方式,列表並無進行排序,若想要排序,可以使用xargs+ls -lrt,不過要注意-exec與xargs區別test