厲害了!除了find命令,還有這麼多文件查找命令,高手必備!

你們好,我是良許。程序員

在系統裏查找文件,是全部工程師都必備的技能(無論你用的是 Windows 、Linux、仍是 MacOS 系統)。對於 Linux 操做系統,單單一個 find 命令就能夠完成很是多的搜索工做。面試

可是,文件搜索命令遠不止一個 find 命令,還有不少。本文就對 Linux 下文件搜索命令進行一個科普,讓你可以在短期內找到本身須要的文件。數據庫

1. find

find 命令應該是最經典的命令了,談到搜索工具第一個想到的確定是 find 命令。可是,find 命令很是強大,想要把它的功能都介紹一遍,恐怕要寫好幾篇文章。架構

因此,這裏就偷個懶,介紹最基本的,根據文件名查找文件的方法。假如咱們想搜索當前目錄(及其子目錄)下全部 .sh 文件,能夠這樣搜索:工具

2. locate

locate 是另一個根據文件名來搜索文件的命令。區別於 find 命令,locate 命令無需指定路徑,直接搜索便可。學習

這個命令不是直接去系統的各個角落搜索文件,而是在一個叫 mlocate.db 的數據庫下搜索。這個數據庫位於 /var/lib/mlocate/mlocate.db ,它包含了系統裏全部文件的索引,而且會在天天早上的時候由 cron 工具自動更新一次。網站

正由於如此,locate 的搜索速度遠快於 find 命令,由於它直接在數據庫裏檢索,速度天然更快。spa

locate 命令在找到文件以後,將直接顯示該文件的絕對路徑,好比:操作系統

可是 locate 命令有個弊端,它沒法搜索當天所建立的文件,由於它的數據庫一天只在早上更新一次。好比我如今建立一個新文件,locate 沒辦法搜索到:3d

爲了解決這個問題,咱們可使用 updatedb 命令手動去更新它的數據庫:

$ sudo updadb複製代碼

而後,咱們就能夠搜索到新文件了。

3. which

which 命令主要用來查找可執行文件的位置,它搜索的位置指定在 $PATH$MANPATH 環境變量下的值,默認狀況下,which 命令將顯示可執行文件的第一個存儲位置:

若是某個可執行文件存儲在多個位置,可使用 -a 選項列出全部的位置。

若是你想一次性查找多個文件,能夠直接跟在 which 命令後面便可。

4. whereis

whereis 命令會在系統默認安裝目錄(通常是有root權限時默認安裝的軟件)查找二進制文件、源碼、文檔中包含給定查詢關鍵詞的文件。(默認目錄有 /bin, /sbin, /usr/bin, /usr/lib, /usr/local/man等相似路徑)。

通常包含如下三部份內容:

  • 二進制文件的路徑
  • 二進制文件的源碼路徑
  • 對應 man 文件的路徑

好比咱們如今搜索 ls 命令:

咱們可使用 -b 選項來只搜索可執行文件所在位置,使用 -B 選項指定搜索位置,使用 -f 選項列出文件的信息。

一樣地,咱們可使用 -s 限定只搜索源碼路徑,使用 -m 搜索 man page 路徑,使用 -s 指定搜索源代碼文件的路徑,使用 -M 指定搜索幫助文件的路徑。


最後,最近不少小夥伴找我要Linux學習路線圖,因而我根據本身的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。不管你是面試仍是自我提高,相信都會對你有幫助!目錄以下:

免費送給你們,只求你們金指給我點個贊!

電子書 | Linux開發學習路線圖

也但願有小夥伴能加入我,把這份電子書作得更完美!

有收穫?但願老鐵們來個三連擊,給更多的人看到這篇文章

推薦閱讀:

相關文章
相關標籤/搜索