我遇到了一个问题,我有一个“东西”在一些文件中的行。 这个文件是我忘记的这一行。 在整个根文件系统中,我想知道哪一个文件和这一行在哪里。 那么我怎么去这个。我用过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“*”从根运行将做到这一点。