• 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参数 - luojiafei的专栏 - CSDN博客
    http://blog.csdn.net/luojiafei/article/details/7213489

  • 相关阅读:
    C#判断闰年
    C#计算时间,107653秒是几天几小时几分钟几秒?
    两个值交换,不使用第三个中间变量做缓存。实现方法
    element UI dialog 固定高度 且关闭时清空数据
    JS
    PHP
    element UI 上传文件成功后
    windows环境安装vue-cli及webpack并创建vueJs项目
    PHP
    mysql点滴记录 三 (基础操作)
  • 原文地址:https://www.cnblogs.com/paul8339/p/7521027.html
Copyright © 2020-2023  润新知