用 find 指令尋找系統裡的關鍵字

[cc lang=”bash”]find “path name” -name “file name” -exec grep -H “search content” {} \;[/cc]

用 Linux 裡的指令 Find 把關鍵字尋出來。

find的參數:
-name 要搜尋哪些檔名
-exec utility name [argument…] {} \;
搜尋出的檔名 交給哪個執行檔(utility name)處理
{} 會被find搜尋後的檔名路徑名稱所取代
\; 代表exec的參數到此為止

grep的參數:
-H 列出搜尋到的檔案名稱路徑

例如我要找「這個目錄」裡「所有檔案」的 main 字串
指令就可以這樣下:
[cc lang=”bash”]find . -name “*.*” -exec grep -H “main” {} \;[/cc]
. <= 該目錄 "*.*" <= 所有檔案 -exec <= 執行一個外部命令 (grep)

指令 find 的小技巧

當一個Script的檔案越做越多的時候,後面的人要接手前人的程式拿到這麼一大票的scrpts時,大概只有臉上三條線可以來表達心中的尷尬。此時,運用find的指令就可以解決一半的問題,而另一半?還是要靠自己的耐心跟毅力了。

這是第一個實用範例
[cc]
find / -type f | xargs grep -l pattern
[/cc]
若進入某目錄下尋找
[cc]
cd /somedirectory
find . -type f | xargs grep -l “STRING THAT YOU WANT”
[/cc]

但最好是進入某個目錄尋找會比較快,覺的它的效率不是很好就是了…