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命令每次只获取一部分文件而不是全部
参考文章