xargs 命令

xargs 是一条 Unix 和类 Unix 操作系统的常用命令;

它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。

可单独使用,也可使用管道符、重定位符等与其他命令配合使用。

常用命令参数:

# 命令替换
-t 先打印命令,然后再执行
-i 用每项替换 {}

find / -perm +7000 | xargs ls -l                    # 将前面的内容,作为后面命令的参数
seq 1 10 |xargs  -i date -d "{} days " +%Y-%m-%d    # 列出10天日期

示例:  

rm `find /path -type f`
如果path目录下文件过多就会因为“参数列表过长”而报错无法执行。但改用xargs以后,问题即获解决。

find /path -type f -print0 | xargs -0 rm
本例中xargs将find产生的长串文件列表拆散成多个子串,然后对每个子串调用rm。这样要比如下使用find命令效率高的多。

find /path -type f -exec rm '{}' \;
上面这条命令会对每个文件调用"rm"命令。当然使用新版的"find"也可以得到和"xargs"命令同样的效果:

find /path -type f -exec rm '{}' +
xargs的作用一般等同于大多数Unix shell中的反引号,但更加灵活易用,并可以正确处理输入中有空格等特殊字符的情况。对于经常产生大量输出的命令如find、locate和grep来说非常有用

 

posted @ 2018-04-03 15:19  01234567  阅读(291)  评论(0编辑  收藏  举报