xargs 作用
xargs
作用是将标准输入转为命令行参数。args
单独使用默认后面是echo
xargs # 等同于 xargs echo
- 输入
xargs
按下回车以后,命令行就会等待用户输入,作为标准输入。可以输入任意内容,直到按下Ctrl + d
,表示输入结束,这时echo
命令就会把前面的输入打印出来。xargs hello world # Ctrl + d hello world
- 例如,可以要查找文件时使用,手动输入需要查找的文件名
xargs find . -name ".xml" # Ctrl + d,手动输入
xargs 参数
- E:表示分隔符,默认是空格和换行
echo "a\tb\tc" | xargs -E "\t" echo
- p:表示每个命令需要询问
- t:打印出最终要执行的命令,然后直接执行
- 0:与
find
中的print0
联合使用,指定输出的文件列表以null
分隔find /path -type f -print0 | xargs -0 rm
- L:如果标准输入包含多行,可以使用
L
参数进行控制多少行作为一个命令行参数,注意是多少行xargs -L 1 find -name "*.xml" "*.java"
- n:与
L
相似,它是控制多少项,一行可以有很多项,用空格隔开 - I:表示可以将参数传输给多个命令,可以使用{}代码变量名
cat foo.txt | xargs -I file sh -c 'echo file; mkdir file'
- P:表示可以最多有多少任务并行执行