雲栖号資訊:【 點選檢視更多行業資訊】
在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!
在系統裡查找檔案,是所有工程師都必備的技能(不管你用的是 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 指令,因為它直接在資料庫裡檢索,速度自然更快。
locate 指令在找到檔案之後,将直接顯示該檔案的絕對路徑,比如:
但是 locate 指令有個弊端,它無法搜尋當天所建立的檔案,因為它的資料庫一天隻在早上更新一次。比如我現在建立一個新檔案,locate 沒辦法搜尋到:
為了解決這個問題,我們可以使用 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 指定搜尋幫助檔案的路徑。
【雲栖号線上課堂】每天都有産品技術專家分享!
課程位址:
https://yqh.aliyun.com/live立即加入社群,與專家面對面,及時了解課程最新動态!
【雲栖号線上課堂 社群】
https://c.tb.cn/F3.Z8gvnK
原文釋出時間:2020-06-16
本文作者:良許Linux
本文來自:“
掘金”,了解相關資訊可以關注“掘金”