xargs 命令
xargs
指令可以从标准输入读取数据,并利用这些数据“组建”为参数并“执行”指令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
xargs
的默认命令 COMMAND 是 echo
,空格 是默认定界符。 这意味着通过管道传递给 xargs
的输入将会包含换行和空白,不过通过 xargs
的处理,换行和空白将被空格取代。
xargs
是构建单行命令的重要组件之一。
命令用法
使用 INITIAL-ARGS
参数以及从 input 那里读到的参数一起传递给 COMMAND
命令运行。
常用可选参数
参数
说明
-0, --null
各个参数项由 null 分割而不是空格分隔;禁止任何引号以及反斜杠处理,还有逻辑上的 EOF 处理
-a, --arg-file=FILE
从 FILE
文件中读取参数而不是从标准输入中读取;如果你使用此选项,除非 标准输入 已经被重定向到 /dev/null
,否则,执行命令时不会影响 标准输入 中的数据
-d, --delimiter=CHARACTER
输入流中的参数项由 CHARACTER
分割而不是空格分割;禁止任何引号以及反斜杠处理,还有逻辑上的 EOF 处理
-E END
设置逻辑上的 EOF 字符串;如果在一行的输入中出现 END,那么剩下的输入内容都被忽略(如果指定了 -0
或 -d
则此项忽略
-i, --replace[=R]
将从标准输入中读取到的 INITIAL-ARGS 中的值替换掉指定的 R
,如果 R 没有指定,就假定使用 {}
-L, --max-lines=MAX-LINES
每条指令行最多使用 MAX-LINES
行非空输入行;末尾的空白会使一个输入行在逻辑上延伸到下一行
-n, --max-args=MAX-ARGS
每条指令行最多使用 MAX-ARGS
个参数
-P, --max-procs=MAX-PROCS
同时运行 MAX-PROCS
个进程,默认值是 1,如果指定为 0,则 xargs 将尽可能的运行多个进程;一般配合 -n
或 -L
使用。否则最会执行一个进程
-r, --no-run-if-empty
如果标准输入中没有任何非空的字符,则不运行命令;默认情况下即使标准输入没有非空字符,命令也会被运行一次
使用实例
递归删除目录下的
.jpg
文件:
※ xargs 和管道 | 的区别
管道
|
:前面的标准输出作为后面的标准输入;xargs :将标准输入作为命令的参数;
Last updated