美文网首页每天一个Linux命令
每天一个Linux命令:xargs

每天一个Linux命令:xargs

作者: BlackChen | 来源:发表于2017-03-11 15:54 被阅读215次

    xargs

    管道是实现“将前面的标准输出作为后面的标准输入
    xargs是实现“将标准输入作为命令的参数
    之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数

    你可以试试运行:
    代码:

    echo "--help"|cat     ---直接打印出--help
    echo "--help"|xargs cat  --- 打开了cat的帮助文档
    

    参数选项:

    • -0 当sdtin含有特殊字元时候,将其当成一般字符,像“空格”


    • -a 从文件中读入作为sdtin


    • -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的


    • -p 操作具有可交互性,每次执行comand都交互式提示用户选择,当每次执行一个argument的时候询问一次用户


    • -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给{},可以用{}代替。
      man 手册:


    • -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符



    xargs 各种用法:

    • 用rm 删除太多的文件,你可能得到一个错误信息:/bin/rm Argument list too long. 用xargs 去避免这个问题
      $find ~ -name ‘*.log’ -print0 | xargs -i -0 rm -f {}

    • 查找文件并压缩
      查找当前目录下所有.c文件find ./ -name "*.c"


      查找并打包压缩:find ./ -name "*.c" | xargs tar -zcvf fin.tar.gz
    • 假如你有一个文件包含了很多你希望下载的URL, 你能够使用xargs 下载所有链接
      cat url-list.txt | xargs wget –c

    • 把指定文件拷贝到指定目录
      find -name "*.txt" | xargs -i cp {} /home/doc

    相关文章

      网友评论

        本文标题:每天一个Linux命令:xargs

        本文链接:https://www.haomeiwen.com/subject/vteagttx.html