zoukankan      html  css  js  c++  java
  • Linux xargs命令 小结

          xargs是给命令 传递参数 的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通过管道传递给xargs的输入 可以 包含换行和空白,不过 xargs 将把 换行和空白 用 空格 取代。

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

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

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


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

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


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

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


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

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


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

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

    ++++++++++++++++++++++++++++++++++++++++

    递归查找所有Python文件并统计文件行数

    find . -name '*.py' | xargs wc -l

    递归查找所有Emacs备份文件并删除:

    find . -name '*~' | xargs rm

    递归查找所有Python文件并搜索import语句:

    find . -name '*.py' | xargs grep 'import'

    处理文件/目录名中的空格

    上面的例子有一个问题,如果文件或是目录名含有空格,则可能会有些问题,这是因为 xargs默认 会按照空白字符(包括 换号 和 table)来 划分输入。一个简单的解决办法就是告诉find使用NUL(\0)来分割结果(通过向find提供-print0选项)并且告诉xargs也使用Nul来分隔输入(-0)。

    删除备份文件,即使含有空格:

    find . -name '*~' -print0 | xargs -0 rm






  • 相关阅读:
    [转]windows下mysql配置文件my.ini的位置
    [转]Oracle 11g不能导出空表的多种解决方法
    [转]ORACLE WITH AS 用法(相当于查询开始前构造临时表,提高效率)
    [转]基于WordPress的微信小程序支付功能开发
    从数据库优化到治病(2)治好心悸过程
    算命三十多年的资深命理师的人生感悟!
    从高维度看世界
    鸾书精华
    实用QPS和TPS高的高效分析方法
    windows 安装 mysql
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744711.html
Copyright © 2011-2022 走看看