題 Grep在Ubuntu的整個服務器上


我需要在整個服務器上使用grep工具。

我嘗試了以下方法:

grep -r 'MyString' / 
grep -r 'MyString' /*

但是,這些似乎都不起作用。有什麼建議?


3
2018-01-05 15:42


起源


你在找什麼?文件或文件夾名稱? (文本)文件的內容? - Bart Kiers
定義“不工作”。他們當然應該工作。


答案:


sudo find / -type f -print0 |xargs -0 grep -l 'MyString'

1
2018-01-05 15:44





sudo find / -type f -exec grep "Strring" {} \;

你確定要做到這一點嗎?這將遍歷所有文件系統(本地或非本地),並可能最大限度地提高服務器上的CPU。


5
2018-01-05 15:45



扔 sudo 在那裡你可以閱讀所有文件,你將有一個勝利者! - Carl Smotricz


cd /
find . | xargs grep MyString

如果您正在尋找特定的文件類型:

find . -name *.java | xargs grep Integer

0
2018-01-05 15:44





我第二個沒有辦法。

但是如果你不是root用戶,你將獲得一大堆權限被拒絕的消息,將它們重定向到/ dev / null。然後你會得到你想要的東西。

 find . / 2>/dev/null | xargs grep MyString 2>/dev/null

0
2018-01-05 16:07





cd /
grep -R 'your string' *

0
2018-01-05 17:56





安裝 ACK,打包為 ack-grep 在Ubuntu存儲庫中。它就像find和grep的超級組合,可以完全按照您的要求進行操作,而無需使用命令組合。

$ sudo ack-grep -a 'MyString' /

-a 選項用於覆蓋ack的默認過濾行為,該行為將搜索限制為它所知道的文件類型。它仍將排除某些文件和目錄,例如以“〜”結尾的備份文件或“.svn”等源控制目錄。您可以使用以下方法覆蓋此行為以搜索絕對所有內容 -u 選項。

要將搜索限制為特定文件類型:

$ sudo ack-grep -aG '.*txt' MyString

注意到這個論點 -G 是一個正則表達式,而不是一個全局。

或者對於ack已經知道的文件類型,例如C ++文件:

$ ack-grep --cpp 'SomeFunctionName'

0
2017-07-10 07:01