原作者地址:https://www.cnblogs.com/chyingp/p/linux-command-xargs.html
感谢原作者
简介
xargs可以将输入内容(通常通过命令行管道传递),转成后续命令的参数,通常用途有:
- 命令组合:尤其是一些命令不支持管道输入,比如
ls
。 - 避免参数过长:xargs可以通过
-nx
来将参数分组,避免参数过长。
使用语法如下
Usage: xargs [OPTION]... COMMAND INITIAL-ARGS...
Run COMMAND with arguments INITIAL-ARGS and more arguments read from input.
入门例子
首先,创建测试文件
touch a.js b.js c.js
接着,运行如下命令:
ls *.js | xargs ls -al
输出如下:
-rw-r--r-- 1 a wheel 0 12 18 16:18 a.js
-rw-r--r-- 1 a wheel 0 12 18 16:18 b.js
-rw-r--r-- 1 a wheel 0 12 18 16:18 c.js
命令解释:
- 首先,
ls *.js
的输出为a.js b.js c.js
。 - 通过管道,将
a.js b.js c.js
作为xargs
的输入参数。 xargs
命令收到输入参数后,对参数进行解析,以空格/换行作为分隔符,拆分成多个参数,这里变成a.js
、b.js
、c.js
。xargs
将拆分后的参数,传递给后续的命令,作为后续命令的参数,也就是说,组成这样的命令ls -al a.js b.js c.js
。
可以加上-t
参数,在执行后面的命令前,先将命令打印出来。
ls *.js | xargs -t ls -al
输出如下,可以看到多了一行内容ls -al a.js b.js c.js
,这就是实际运行的命令。
ls -al a.js b.js c.js
-rw-r--r-- 1 a wheel 0 12 18 16:18 a.js
-rw-r--r-- 1 a wheel 0 12 18 16:18 b.js
-rw-r--r-- 1 a wheel 0 12 18 16:18 c.js
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)