xargs的i与l参数的区别


xargs与find常常结合来进行文件操做,平时删日志的时候只是习惯的去删除,好比html

 # find . -type f -name "*.log" | xargs rm -rf *linux

就将以log结尾的文件删除了,若是我想去移动或者复制就须要使用参数来代替了。ide

xargs  -i 参数或者-I参数配合{}便可进行文件的操做。spa

-I replace-str日志

              Replace  occurrences  of  replace-str  in the initial-arguments with names read from standard input.  Also, unquoted blanks do not terminatehtm

              input items; instead the separator is the newline character.  Implies -x and -L 1.ip


       --replace[=replace-str], -i[replace-str]ci

              This option is a synonym for -Ireplace-str if replace-str is specified, and for -I{} otherwise.  This option is deprecated; use -I  instead.get

man了一下看的仍是不太懂,经过例子,作做实验将个人理解写一下。input




############### 操做的目录下的文件###############

[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 参数 须要事先指定替换字符

相关文章
相关标签/搜索