2015-07-12 45 views
1

我需要从文件中找到特定的数据。我想从我的Linux的整个系统中进行搜索。这可能吗?Linux找到文件和整个系统的特定数据

+2

[find](http://linux.die.net/man/1/find)和[grep](http://linux.die.net/man/1/grep)的组合可能会做你需要什么。大量的例子可以在互联网上找到,所以我正在投票结束。 – fvu

回答

0
find/-name "*" -exec grep -q <pattern> '{}' \; -print 

该命令从根目录(/)搜索;所以所有的子目录。

您可以替换您的搜索模式以代替命令。

它会打印所有文件包含您的模式。

如果您知道您的搜索文件的扩展名,您可以通过执行*.extention的指令地址替换*来限制搜索。

+0

感谢堆bro〜! – tuturyokgaming

2

上述答案将工作,但会尝试grepping目录以及inturn将引发错误的模式。最好的解决方案是只搜索文件。这也会大大缩短搜索时间。

find/-type f -exec grep -i <pattern> {} \; 

如果你只列出包含模式的文件感兴趣,你可以在grep的传递-l开关。

find/-type f -exec grep -il <pattern> {} \; 

如果你想同时列出文件(S)和模式,你可以在grep的传递-H开关。

find/-type f -exec grep -iH <pattern> {} \; 

@alvits - 谢谢你的建议。

+0

我完全同意您对另一个答案中的缺陷的评论。如果他们希望打印文件名,也应该提及使用'grep -il',如果他们想要文件名和模式,也应该使用'grep -iH'。 – alvits

+0

@alvits,谢谢你的建议。我已经对答案做了必要的修改。 – rickydj

相关问题