zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    https单向证书
    单例模式再学习
    sql经常出现死锁解决办法
    sqlserver结束和监视耗时的sql
    如何保持进步
    es6-学习
    javascript修改div大小遮挡页面渲染问题
    报表功能设计思考-初步尝试-第一次
    导出统计数据-经验积累-深入1
    Java中数据类型转换&基本类型变量和对象型变量
  • 原文地址:https://www.cnblogs.com/paul8339/p/7521027.html
Copyright © 2011-2022 走看看