• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    shell编程必须要掌握的命令,xargs

      in  unix      Tags: 

    一,说xargs命令前,说一下什么是shell编程

    什么是shell编程呢,说白了就是按一定的规则把各种命令组织起来,完成一定的事情。纯属个人理解,哈哈。不管是交互式的shell,还是非交互的shell,它都是由一些命令组成的。

    所以命令很重要。xargs就是其中之一,并且还是相当重要的一个命令,为什么说它重要呢,因为他和能其他命令结合使用,把一个命令的输出,当作参数传给另一个命令。这个根find命令参数中的exec很像,但是不同:以下4点在网上找的,第一点,是亲身体验过,家里我用的是archlinux,当你通过exec传很多数据给后面的命令时,会卡在哪儿,其他的三没试过,如果有兴趣的朋友可以自己比较一下他们速度,

    [zhangy@BlackGhost music]$ time find /home/zhangy/download/ -name ".gz" -print


    real    0m0.053s
    user    0m0.003s
    sys    0m0.003s

    1,使用find 的exec选项去处理匹配到的选项时,find 一次性将匹配到得参数传给exec执行。但有的系统,对exec 传的参数长度有限制,这样在find 命令执行几分钟后会报溢出,错误信息通常是“参数列太长”或“参数列溢出"。

    2,xargs 与find 命令合用的时候,find 把匹配到得命令传递给xargs ,xargs 每次只获取一部分文件,而不是全部。分批处理。

    3, 使用exec选项,会为匹配的每个文件处理分配个进程,并不是将匹配到的文件作为一个参数一次执行,这样就会触发多个进程,进而使系统性能下降,影响处理效率。

    4,xargs则只有一个进程、但xargs 处理是否分批 ,批次大小,也会受系统些可调参数影响。

    二,xargs应用实例

    1,找出文件,改变文件所属用户

    #将把当前目录下面以test开头的文件用户改为zhangy
    [root@BlackGhost download]# find . -name "test*"  -print | xargs chown zhangy:users

    #查看当前目录中以test开头的文件所属用户
    [root@BlackGhost download]# find . -name "test*"  -print -exec ls -al {} \;
    ./test.sql.zip
    -rw-r--r-- 1 zhangy users 1981 Feb  2 16:05 ./test.sql.zip
    ./test.zip
    -rw-r--r-- 1 zhangy users 164 May 23 22:54 ./test.zip

    2,把系统的用户统计一下

    [zhangy@BlackGhost download]# cut -d: -f1 < /etc/passwd | xargs echo >> /home/zhangy/userlist.txt

    3,备份文件

    [zhangy@BlackGhost ddd]$ ls |xargs -i cp {} {}.bak
    cp test test.bak



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开