在linux操作系統裏,我們經常會需要知道哪個文件放在哪裏,才能夠對文件進行一些修改和維護工作。所以對查找命令的掌握就是必須的了。
which(尋找”執行文件“):
命令格式:which [-a] command
例如:which ipconfig 或 which which,這樣就能查找到ipconfig命令和which命令放在了哪個目錄下。但是這個命令不能找到cd命令,因爲cd是bash內置的命令。但是可以用type這個命令。
whereis(尋找特定文件):
命令格式:whereis [-bmsu] filename/directoryname
參數:
-b:只找二進制格式的文件
-m:只找說明文件manual路徑下的文件
-s:只找source源文件
-u:查找不在上述三個選項的其他文件
例如:whereis ipconfjg。
locate:
命令格式:locate [-ir] keyword
參數:
-i:忽略大小寫的差異
-r:後面可接正則表達式的顯示方式
例如:locate passwd,值得說明的一點是:locate命令可以在後面輸入文件的部分名稱。locate的查詢速度相當的快,並且只佔用很少的資源,因爲locate是在數據庫上做查詢的,而並非硬盤。但是同時還有一個缺點就是locate命令查詢的結果不一定是準確的,因爲這個數據庫默認是一天更新一次,如果你剛剛創建一個文件,馬上就對它進行一次locate,那麼就會找不到這個文件。解決這個問題的方法就是使用updatedb命令,對數據庫進行強制更新,所以,問題迎刃而解啦!
find:
命令格式:find [path] [option] [action]
參數巨多,這裏就不一一列舉了。
find命令是linux裏功能最強大的命令,遠遠比whereis和locate強大得多,但是但是,這個命令確是最不常用的一個,原因就是find是在硬盤上進行查找,時間空間的開銷會很大,這顯然不是我們所期望的,所以find的用處僅僅是在locate和whereis做不到的地方。
grep(在指定的文件中查找字符串):
命令格式:grep ‘查找的字符串’ filename
參數:
-a:將binary文件以text文件的方式進行查找
-c:計算找到查找字符串的次數
-i: 忽略大小寫的不同
-n:順便輸出行號
-v:反向選取
例如:grep -i mystring myfile,grep是一個很強大的命令,支持的語法很多,可以用在正則表達式裏。
綜上,其實我們日常用到最多的命令還是locate,簡單高效,對不同命令的掌握還需要多多練習,才能體會其中的不同與奧祕,Let's work hard together!!!