如何在整个文件系统中find可能存在于某个未知文件中的文本string

我遇到了一个问题,我有一个“东西”在一些文件中的行。 这个文件是我忘记的这一行。 在整个根文件系统中,我想知道哪一个文件和这一行在哪里。 那么我怎么去这个。我用过find,但是当我用find的时候,我知道文件的名字在这种情况下我也不知道文件的名字。 这是一个Ubuntu服务器10.04那么我能做些什么来找出哪个文件有这个string。

我总是使用:

find / -xdev | xargs grep "string" 

这会给你一个所有匹配的string的列表,以及他们所在的实际文件。

一个简单的暴力解决scheme将是:

 find / -type f -exec grep -H 'some string' {} \; 

(gnu grep的-H选项导致它返回文件名)。

但是,你可能会受益于编写一个更聪明的脚本,忽略像二进制文件,可执行文件(非脚本)等东西的时间

呃那里有很多文件

也许如果你可以缩小到最后一次访问该文件并尝试一段时间

find / -xdev -type f -atime -X -exec grep -H 'string' {} \;

其中X是从今天向后的天数,您确定您访问了该文件

也许像“grep -iR”文本find“*”从根运行将做到这一点。