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

posted @   paul_hch  阅读(305)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2017-06-20 CentOS中搭建Redis伪分布式集群【转】
2017-06-20 memcached安装【转】
2017-06-20 python常用运维脚本实例【转】
点击右上角即可分享
微信分享提示