功能:將標準輸入分割後轉化爲命令參數。
例子:echo "*.py"| xargs find ./ -name
,查找當前目錄下的所有py文件。
-d 制定分隔符
默認情況下,xargs
將空格和換行符作爲分隔符,xargs -d "\t" command
指定\t
爲分隔符
-p -t
-p
在執行命令前會打印命令並確認,-t
只會打印命令,不用確認。
-0 與find
由於xargs
默認將空格作爲分隔符,所以不太適合處理文件名,因爲文件名可能包含空格。
find
命令有一個特別的參數-print0
,指定輸出的文件列表以null
分隔。然後,xargs
命令的-0
參數表示用null
當作分隔符。
$ find /path -type f -print0 | xargs -0 rm
上面命令刪除/path
路徑下的所有文件。由於分隔符是null
,所以處理包含空格的文件名,也不會報錯。
-n
-n
指定每次將多少項作爲命令行參數
echo a b c | xargs -n 1 -t echo
# echo a
# a
# echo b
# b
# echo c
# c
-I
指定參數位置,xargs
默認將參數放在命令最後,-I
可以指定佔位符。
echo ./ | xargs -I pos find pos -name "*.py"
查找當前目錄下的py文件,pos
爲佔位符
--max-procs
用-n
參數時,命令會執行多次,默認一個進程執行,--max-procs
可以指定最多使用幾個進程,--max-procs 0
不限制進程