:::

Linux搜尋資料夾下的檔案內文:find+grep指令產生器 / Search the Content of Files on Linux: find + grep Command Builder

3月 25, 2017 5 Comments Edit Copy Download

image

Linux內建了強大的搜尋工具find,可以與grep指令搭配一起使用,以達到檔案內文全文檢索的功能。但是這兩個指令太長了,我每次都要找一下它們是怎麼組在一起。這次索性乾脆寫成一個簡單的find+grep指令產生器,讓我們使用搜尋指令更加便利!


搜尋指令 find+grep產生器 / find+grep command builder

find與grep指令說明 / About find and grep commands

預設產生的指令為:

find "/var/www/" -name "*.php" -exec grep -H "Exception" {} \;

這段指令的意思是:

  • 在「/var/www/」路徑底下。
  • 搜尋名為「*.php」的檔案。「*」為萬用字元,可取代任意檔名。
  • 搜尋字串「Exception」。

關於find與grep的介紹,請看[Linux] 搜尋資料夾底下 檔案內部文字這篇。

全系統檔案名稱快速搜尋 / Search Files in Whole System

如果要快速找尋全系統中擁有指定檔案名稱的指令,那麼建議使用locate。例如:

locate log.txt

有時候使用locate之前,要先搭配updatedb建立索引。updatedb指令需要有root權限,用法通常會是:

sudo updatedb; locate log.txt

關於locate的詳細用法,請參與鳥哥的「第六章、Linux 檔案與目錄管理:locate / updatedb」。

總共5 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 最近使用的時候發現這個指令無法在PieTTY貼上中文,不知道是PieTTY的問題,還是伺服器沒有中文功能
    總之未來使用的時候可能要注意一下這個問題

    回覆刪除
  2. 目前不能用喔. 不會自動產生.

    回覆刪除
  3. 請問這個可以搜尋pdf檔案裡面的字串嗎?

    回覆刪除
    回覆
    1. 您好,

      請使用pdfgrep套件。

      用法舉例:
      ````sh
      pdfgrep 'pattern' *.pdf
      pdfgrep 'pattern' file.pdf
      ````

      詳細介紹
      https://pdfgrep.org/

      刪除