linux +在文件目录下findword,但很快

我有以下命令

find /var -type f -exec grep "param1" {} \; -print 

使用这个命令,我可以在/ var下的任何文件中findparam1string

但是这个时间很长。

我需要其他的可能性来find文件中的string,但比我的例子更快

谢谢

耶尔

 grep -r "string" 

发现不是必要的。

这是一个很好的链接,虽然过时了。

链接文本

另外我认为这属于superuser.com

看看grep命令的-l选项来提高速度。 要加快find命令的使用:

 find ... -exec sh -c '...' arg0 '{}' + # grep ... -l: print files with matches, but stop scanning the file on the first match grep -lsr "param1" /var find /var -type f -exec sh -c 'grep -ls "param1" "$@"' arg0 '{}' + find /var -type f -exec sh -c 'grep -ls "$0" "$@"' "param1" '{}' + 
 find /var -type f | xargs grep "param1" 

会稍微快一点(每个文件都不会产生进程)

 grep -r "param1" /var 

我觉得会稍微多点。

在大多数情况下,也可以使用ack,这比“grep更好 ”。 其功能之一是默认忽略典型的垃圾文件(如.svn或.git目录,核心转储文件,备份文件),使用大量预定义的文件类的能力,以及不错的输出格式。

您可以使用定位的索引(如果您不依赖添加/删除的文件)

 grep "param1" $(locate -r '^/var') 

其中的一些命令优化是有帮助的,但是从擦掉200万个文件中获得的最大速度是使用SSD硬盘。 相同的查询花了1/5的时间。