xargs
文本处理
用法
[cmd] | xargs [cmd2]把输入的行变成另一个命令的参数;名字里有空格就会出错,除非两边都用 NUL,也就是 find -print0 配 xargs -0。
常用选项
| 选项 | 含义 |
|---|---|
| -n | How many arguments to hand over per run |
| -I | Put the argument where a placeholder such as {} sits |
| -0 | Read NUL-separated input, to pair with find -print0 |
| -P | Run that many copies at once |
| -r | Do not run the command at all on empty input |
| -t | Print each command before running it |
示例
find . -name '*.log' -print0 | xargs -0 rmDeletes them even when names hold spaces.
xargs -n1 -P4 curl -O < urls.txtFour downloads at a time.
ls *.txt | xargs -I{} mv {} old/{}Uses {} where the file name goes.
它们本来就是用管道串起来用的。串三条往往比让一条命令做完所有事更短。
怎么看
- 方括号 [ ] 表示这部分可以不写。
- 省略号 … 表示可以写多个。
- 选项区分大小写——有些命令里 -r 和 -R 不是一回事。
常见问题
Q. xargs 是做什么的?
把输入的行变成另一个命令的参数;名字里有空格就会出错,除非两边都用 NUL,也就是 find -print0 配 xargs -0。
Q. 怎么写?
[cmd] | xargs [cmd2] —— 方括号表示可以省略的部分。
Q. 值得记的选项有几个?
这里列了 6 个,完整列表在 man xargs。这条命令属于文本处理。
相关命令
man 手册: man xargs