linux查找文件并加入压缩包中。
find -name '*.log' | xargs grep -l 'cart' //查找当前目录下后缀为.log的文件,然后使用xargs查询每个文件里面是否含有关键词cart
或者
find -name '*.php' exec grep -l 'test' {} ;
查找到的文件如何加入压缩包内:
分两步:
1、将按照自己条件搜索出来的文件名写入到一个文件 tmp.list 中
find /tmp -cmin +24 > tmp.list
2、然后将文件中记录到的所有文件加入到压缩包中
tar -T tmp.list -czvf tmp.expire.tar.gz
-exec会把find查找到的结果一次性全部交给后面的命令来进行处理,
xargs会把find查找到的结果逐一交给后面的命令进行来处理,
最后试了几分钟这样使用一条命令解决问题:
find -name '*.log'|xargs grep -l 'CartController'|xargs tar -czvf log.tar.gz
这里随便说一下竖线:
管道符号,是unix一个很强大的功能,符号为一条竖线:"|"。
用法: command 1 | command 2 他的功能是把第一个命令command 1执行的结果作为command 2的输入传给command 2
参考链接:http://michaelyang1988-hotmail-com.iteye.com/blog/1675816
https://blog.csdn.net/zhouzme/article/details/20014591
http://bbs.chinaunix.net/thread-1534235-2-1.html