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






  • 相关阅读:
    NoSuchMethodError 一般是jar包冲突了
    联通网络环境上无法访问http://repo1.maven.org/maven2/中央库解决,镜像库添加
    实现MySQL数据库的实时备份
    海外支付:遍布全球的Paypal
    .Net分布式缓存应用实例:Couchbase
    海外支付:抵御信用卡欺诈的CyberSource
    那些年,我们开发的接口之:QQ登录(OAuth2.0)
    ES6知识整理(一)--- let/const/箭头函数
    webpack 热更新(实施同步刷新)
    Vue状态管理vuex
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744711.html
Copyright © 2011-2022 走看看