xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs 的实用例子。
1. 当你尝试用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题
|
1 |
|
2. 获得/etc/ 下所有*.conf 结尾的文件列表,有几种不同的方法能得到相同的结果,下面的例子仅仅是示范怎么实用xargs ,在这个例子中实用 xargs将find 命令的输出传递给ls -l
|
1 |
|
3. 假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs 下载所有链接
|
1 |
|
4. 查找所有的jpg 文件,并且压缩它
|
1 |
|
5. 拷贝所有的图片文件到一个外部的硬盘驱动
|
1 |
|
EXAMPLES
find /tmp -name core -type f -print | xargs /bin/rm -f
Find files named core in or below the directory /tmp and delete them. Note that this will work incorrectly if there are any filenames containing newlines or spaces.
find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
Find files named core in or below the directory /tmp and delete them, processing filenames in such a way that file or directory names containing spaces or newlines are correctly handled.
xargs是一个强大的命令,它可以处理命令行参数过长的问题,将find、ls等命令的输出作为参数传递给其他命令。例如,用xargs与rm结合避免删除大量文件时的错误,或者与ls-l组合显示/etc下所有.conf文件的详细信息。此外,xargs还可以配合wget批量下载URL列表中的链接,以及与tar一起压缩jpg文件。对于包含空格或特殊字符的文件名,使用print0和-x0选项能确保正确处理。
871

被折叠的 条评论
为什么被折叠?



