美文网首页
每日一个linux命令17-find之xargs篇

每日一个linux命令17-find之xargs篇

作者: 1519f8ccc7b0 | 来源:发表于2017-04-24 19:52 被阅读0次

使用exec可能存在的问题:

  1. 在使用find命令匹配的文件运行exec命令时,find命令会把匹配到的文件全部传递给exec命令,但有些系统对能够传送的exec命令有长度限制;
  2. 在有些系统中,会为每个匹配的find文件执行exec命令启动一个进程,这些在匹配文件较多时,会造成巨大的资源浪费;

而xargs则可以解决这两个问题:

  1. xargs会分页传送匹配的文件给命令;
  2. xargs只会启动一个进程运行命令;

参数

使用-i参数表示:find命令的输出用{}代替
-lN是一次处理N个参数
-t是处理之前打印出命令

示例:

  1. 移动文件 -i
[root@test findTest]# ls
2rd  f1  F1  f1.bak  F1.bak  f2  F2  f2.bak  F2.bak  f3  F3  f3.bak  F3.bak  f4  f4.bak  test.sh
[root@test findTest]# find . -type f -name "*.bak" | xargs -i mv {} 2rd/
[root@test findTest]# ls 2rd
3rd  f1  F1  f1.bak  F1.bak  f2  F2  f2.bak  F2.bak  f3  F3  f3.bak  F3.bak  f4  f4.bak
[root@test findTest]# 
  1. 移动文件 -l -t
[root@test test]# find . -type f -name "*.bak"|xargs -t -l2 -i mv {} findTest/
mv ./f3.bak findTest/ 
mv ./F3.bak findTest/ 
mv ./F1.bak findTest/ 
mv ./f2.bak findTest/ 
mv ./f4.bak findTest/ 
mv ./F2.bak findTest/ 
mv ./f1.bak findTest/ 
  1. 搜索包含特定字符的文件
[root@test test]# find . -type f| xargs grep "Everything"
./lessTest/Kconfig:   Everything in tmpfs is temporary in the sense that no files will be
./moreTest/Kconfig:   Everything in tmpfs is temporary in the sense that no files will be
  1. 确认是否继续执行 -p
[root@test test]# ls
catTest  f1.bak  f.bak  findTest  headTest  lessTest  moreTest  nlTest
[root@test test]# find . -type f -name "*.bak"| xargs -p rm  -f
rm -f ./f.bak ./f1.bak ?...y
[root@test test]# ls
catTest  findTest  headTest  lessTest  moreTest  nlTest

相关文章

  • 每日一个linux命令17-find之xargs篇

    使用exec可能存在的问题: 在使用find命令匹配的文件运行exec命令时,find命令会把匹配到的文件全部传递...

  • xargs命令详解

    linux命令之xargs 1、xargs命令简介 xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命...

  • Linux那点事-xargs命令详解

    Linux xargs 命令 xargs原理剖析及用法详解 1. 为什么需要xargs命令 1.1 管道|的缺陷 ...

  • 每日一个linux命令17-find之exec篇

    1 在find的查询结果上执行命令篇 -exec 参数后面跟的是command命令,它的终止是以;为结束标志的,...

  • 每日一个linux命令17-find之查询篇01

    1. 命令解析 命令用途:在文件系统中查找文件,该命令功能强大,参数较多;在较大容量的目录中查找时,find命令会...

  • 每日一个linux命令17-find之查询篇02

    find的功能如此之多,让我们继续上篇的示例2.1 忽略大小写的查找 -iname 2.2 指定最大搜索层级 -m...

  • 工具 | Linux 篇 - xargs 命令

    主题:xargs 命令使用 xargs(英文全拼: eXtended ARGuments)是给命令传递参数的一个过...

  • Linux命令学习之xargs

    echo '--help' | cat输出:--help echo '--help' | xargs cat 约等...

  • Linux xargs 命令

    简介 xargs 是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。 xargs 可以将管道或标准输入(s...

  • Linux:xargs命令

    有些命令只能以命令行参数的形式接受数据,无法通过stdin接受数据流,此时采用命令xargs,将标准输入数据转换成...

网友评论

      本文标题:每日一个linux命令17-find之xargs篇

      本文链接:https://www.haomeiwen.com/subject/hxnpzttx.html