你們好,我是良許。程序員
在系統裏查找文件,是全部工程師都必備的技能(無論你用的是 Windows 、Linux、仍是 MacOS 系統)。對於 Linux 操做系統,單單一個 find 命令就能夠完成很是多的搜索工做。面試
可是,文件搜索命令遠不止一個 find 命令,還有不少。本文就對 Linux 下文件搜索命令進行一個科普,讓你可以在短期內找到本身須要的文件。數據庫
find
命令應該是最經典的命令了,談到搜索工具第一個想到的確定是 find 命令。可是,find 命令很是強大,想要把它的功能都介紹一遍,恐怕要寫好幾篇文章。架構
因此,這裏就偷個懶,介紹最基本的,根據文件名查找文件的方法。假如咱們想搜索當前目錄(及其子目錄)下全部 .sh
文件,能夠這樣搜索:工具
locate
是另一個根據文件名來搜索文件的命令。區別於 find 命令,locate 命令無需指定路徑,直接搜索便可。學習
這個命令不是直接去系統的各個角落搜索文件,而是在一個叫 mlocate.db
的數據庫下搜索。這個數據庫位於 /var/lib/mlocate/mlocate.db
,它包含了系統裏全部文件的索引,而且會在天天早上的時候由 cron 工具自動更新一次。網站
正由於如此,locate 的搜索速度遠快於 find 命令,由於它直接在數據庫裏檢索,速度天然更快。spa
locate 命令在找到文件以後,將直接顯示該文件的絕對路徑,好比:操作系統
可是 locate 命令有個弊端,它沒法搜索當天所建立的文件,由於它的數據庫一天只在早上更新一次。好比我如今建立一個新文件,locate 沒辦法搜索到:3d
爲了解決這個問題,咱們可使用 updatedb
命令手動去更新它的數據庫:
$ sudo updadb複製代碼
而後,咱們就能夠搜索到新文件了。
which
命令主要用來查找可執行文件的位置,它搜索的位置指定在 $PATH
及 $MANPATH
環境變量下的值,默認狀況下,which
命令將顯示可執行文件的第一個存儲位置:
若是某個可執行文件存儲在多個位置,可使用 -a
選項列出全部的位置。
若是你想一次性查找多個文件,能夠直接跟在 which 命令後面便可。
whereis
命令會在系統默認安裝目錄(通常是有root權限時默認安裝的軟件)查找二進制文件、源碼、文檔中包含給定查詢關鍵詞的文件。(默認目錄有 /bin
, /sbin
, /usr/bin
, /usr/lib
, /usr/local/man
等相似路徑)。
通常包含如下三部份內容:
好比咱們如今搜索 ls 命令:
咱們可使用 -b
選項來只搜索可執行文件所在位置,使用 -B
選項指定搜索位置,使用 -f
選項列出文件的信息。
一樣地,咱們可使用 -s
限定只搜索源碼路徑,使用 -m
搜索 man page 路徑,使用 -s
指定搜索源代碼文件的路徑,使用 -M
指定搜索幫助文件的路徑。
最後,最近不少小夥伴找我要Linux學習路線圖,因而我根據本身的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。不管你是面試仍是自我提高,相信都會對你有幫助!目錄以下:
免費送給你們,只求你們金指給我點個贊!
也但願有小夥伴能加入我,把這份電子書作得更完美!
推薦閱讀: