• xargs -i和-I的区别【转】


    xargs与find经常结合来进行文件操作,平时删日志的时候只是习惯的去删除,比如
     # find . -type f -name "*.log" | xargs rm -rf *
    就将以log结尾的文件删除了,如果我想去移动或者复制就需要使用参数来代替了。
     
    xargs  -i 参数或者-I参数配合{}即可进行文件的操作。
     
    -I replace-str
                  Replace  occurrences  of  replace-str  in the initial-arguments with names read from standard input.  Also, unquoted blanks do not terminate
                  input items; instead the separator is the newline character.  Implies -x and -L 1.

           --replace[=replace-str], -i[replace-str]
                  This option is a synonym for -Ireplace-str if replace-str is specified, and for -I{} otherwise.  This option is deprecated; use -I  instead.
    man了一下看的还是不太懂,通过例子,做作实验将我的理解写一下。
     
    ############### 操作的目录下的文件###############
    [root@test05 ab]# ls
    1kk.zip  3kk.zip  5kk.zip  b.rar  d.rar  f.rar  h.rar  j.rar  mini.txt  ni.txt
    2kk.zip  4kk.zip  a.rar    c.rar  e.rar  g.rar  i.rar  k.rar  nii.txt
    ###################使用 i 参数 ##################
    [root@test05 ab]# find . -type f -name "*.txt" | xargs -i cp {}  /tmp/k/
    [root@test05 ab]# ls ../k/
    mini.txt  nii.txt  ni.txt
    [root@test05 ab]#
    ###################  使用 I  参数 ################
    [root@test05 ab]# find . -type f -name "*.txt" | xargs -I {} cp {}  /tmp/n/
    [root@test05 ab]# ls ../n/
    mini.txt  nii.txt  ni.txt
     
    结果出来了,
      加-i 参数直接用 {}就能代替管道之前的标准输出的内容;

     加 -I 参数 需要事先指定替换字符

    转自

    xargs的i参数 - CSDN博客 https://blog.csdn.net/luojiafei/article/details/7213489

  • 相关阅读:
    业务、技术和语言的关系
    查询优化一般原则
    软件构架师的特点(转与Rational Edge)
    VMware安装Vista虚拟机
    使能更改SubVersion日志信息
    清除数据库日志文件
    构建自定义活动以扩展您的工作流的作用范围(转载于MSDN)
    Delphi数据库通用模块及典型系统开发
    Windows Workflow Foundation 2 规则引擎简介
    设置STS服务器配置数据库
  • 原文地址:https://www.cnblogs.com/paul8339/p/9202867.html
Copyright © 2020-2023  润新知