xargs参数

Sakura 发布于 2024-01-26 249 次阅读


功能:将标准输入分割后转化为命令参数。

例子: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不限制进程