xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
例如删除某个目录下的文件,可以这么做 rm, 如果文件过多,就可能出现
find /path -type f
参数列表过长
的错误,导致执行失败。
这个时候使用 xargs 就能比较好的解决问题
。
find /path -type f -print0 | xargs -0 rm
xargs是通过标准输入或者是管道中的一段字符串来传递命令的
参数列表
, 中间会有个解析的参数的过程,然后调用相应的命令并执行,详细的参数解释请
man xargs
用法
-0
xargs参数列表是通过空格,制表符,还有换行符来区分的,例如下面的一个命令
| |
一般情况下会正常的执行,但是文件名中如果有 空格或者是换行符,就会执行失败了
| |
这时候加上
-0
就能正常执行了。
-I
替换字符,把输入进来的参数替换成一个自己定义的字符,类似给输入的参数起了一个别名。
| |
上面的命令会输出
.py
文件的名称,然后附加 “ python”,也就是
./test.py
变成了
./test.py python
查看
/
目录下的文件
| |
–show-limits
显示当前操作系统,命令行长度的限制
| |
例子
删除当前目录下
.c
文件
| |
查找当前目录下包含
utf-8
的
.py
文件,显示行号
| |
查找当前目录下
.bak
文件,并移动到
~/old.files
文件夹下面
| |
实际使用中,复杂的操作比较少,暂且记录那么多。