Linux的find与xargs结合使用

876 阅读1分钟

find 与 xargs 的组合:

什么是xargs:x 是加减乘除的乘号,args 则是 arguments (参数) 的意思,所以说,就是在产生某个指令的参数的意思;

会使用 xargs 的原因是, 很多指令其实并不支持管线命令,因此我们可以透过 xargs 来提供该指令引用 standard input 之用。

举个简单例子:比如我有个test目录,该目录下面又3个文件:a.log  b.log  c.log

a.log的内容是hh

vagrant@ubuntu-xenial:~/test$ cat a.log 
hh 

b.log内容是hqh

vagrant@ubuntu-xenial:~/test$ cat b.log 
hqh 

c.log内容是hh2w

vagrant@ubuntu-xenial:~/test$ cat c.log 
hh2w 

现在要查找test目录下的所有普通文件,里面内容包含hh的数据:

vagrant@ubuntu-xenial:~/test$ sudo find ./ -type f | xargs grep 'hh'
./a.log:hh
./c.log:hh2w 

find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部


参考文章

www.cnblogs.com/wangqiguo/p…

www.cnblogs.com/fish-101/p/…