2015-07-12 49 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