侧边栏切换

linux xargs命令

最后编辑于: 2015-10-18 14:47  |  分类: linux  |  标签:   |  浏览数: 965  |  评论数: 0


xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。

它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。

通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。

xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。

xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs的实用例子。

  1. 当你尝试用rm删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs去避免这个问题

# find ~ -name ‘*.log’ -print0 | xargs -0 rm -f

  1. 获得/etc/下所有*.conf 结尾的文件列表,有几种不同的方法能得到相同的结果,下面的例子仅仅是示范怎么实用xargs,在这个例子中使用xargs将find命令的输出传递给ls -l

# find /etc -name "*.conf" | xargs ls –l

  1. 假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs下载所有链接

# cat url-list.txt | xargs wget –c

  1. 查找所有的jpg文件,并且压缩它

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

  1. 拷贝所有的图片文件到一个外部的硬盘驱动

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory


上一篇: about linux的strip命令

下一篇: virtualbox增强包vboxadditions的安装