五 Linux學習之檔案搜尋命令

2022-09-15 09:15:08 字數 3603 閱讀 5861

locate 檔名

在後台資料庫中按檔名搜尋,搜尋速度最快

/var/lib/mlocate

#locate命令所搜尋的後台資料庫(資料庫不會實時重新整理,所以新建的檔案馬上使用localte命令是無法搜尋到的,更新頻率大概一天一次)

updatedb

#更新資料庫(更新後就可以使用locate命令進行搜尋了)

1)只能搜尋檔名

2)存在不搜尋的檔案或目錄(可以使用vi /etc/updatedb.conf命令檢視不搜尋的部分有哪些,如圖中不搜尋的部分為yes那一行下面的所有內容,換句話說,打比方你在/tmp目錄下建立了個檔案,那麼即使你updatedb後也是無法搜尋到那個檔案的)

whereis 命令名

#搜尋命令所在路徑及幫助文件所在位置

選項:-b:只查詢可執行檔案

-m:只查詢幫助檔案

限制條件:

只能搜尋系統命令,不能搜尋普通檔案

which 命令

#搜尋命令所在路徑及別名

不是所有命令都有別名,所以使用which有時候會不顯示別名

shell自帶的內建命令使用which或whereis是無法查詢到可執行檔案的例如cd命令,只有外部命令才可以使用which和whereis來進行查詢,之所以pwd、ls這種命令可以直接使用是因為linux自動為這些系統命令配置了環境變數。如果是我們自己寫的程式如果想不打絕對路徑就執行的話需要自己手動配置環境變數,就像windows那樣

可以使用命令」echo $path」來檢視環境變數

find [搜尋範圍] [搜尋條件]

#搜尋檔案

find / install.log    #在/目錄下遍歷查詢install.log檔案

#避免大範圍搜尋,會非常消耗系統資源

選項

描述例子

-name

按檔名搜尋(區分大小寫)

find /root –name install.log

-iname

按檔名搜尋(不區分大小寫)

find /root –iname install.log

-user

按所有者搜尋(搜尋屬於所有者的所有檔案)

find /root –user root

-nouser

查詢沒有所有者的檔案(搜尋當前沒有所有者的所有檔案)

注意:

1./sys和/proc兩個目錄中如果存在沒有所有者的檔案請不要手動清除,因為他可能是核心直接產生的檔案,核心直接產生的檔案不一定會存在所有者

2.外來檔案,比如拿u盤從windows中copy到linux中的

3.除了以上兩種情況,其他沒有所有者的檔案可以全部清除,基本都是垃圾檔案

find /root –nouser

-mtime

按修改時間查詢檔案

atime        檔案訪問的時間

ctime        修改檔案屬性的時間

mtime       修改檔案內容的時間

find /var/log/ –mtime +10

#查詢10天前修改的檔案

-10         10天內修改的檔案

10           10天當天修改的檔案

+10        10天前修改的檔案

-size

按檔案大小查詢

-a and 邏輯與,兩個條件都滿足

-o or    邏輯或,兩個條件滿足乙個即可

-exec/-ok 命令 {}\;    對搜尋結果執行操作,非常有用

注意事項:

1.也可以按照m位元組去查詢,但是這裡有個注意事項,k是小寫m要寫大寫才可以,這個要嚴格區分大小寫

2.如果不加單位,預設的單位是扇區單位也就是512kb,計算十分麻煩

find . –size 25k

#當前目錄查詢檔案大小是25kb的檔案

-25k       小於25kb的檔案

25k       等於25kb的檔案

+25k      大於25kb的檔案

find /etc –size +20k –a –size –50k

#查詢/etc目錄下,大於20k並且小魚50k的檔案

find /etc –size -20k –o –size +50k

find /etc –size +20k –a –size –50k –exec ls –lh {} \;

#超找/etc目錄下,大於20k小魚50k的檔案,並顯示詳細資訊

-inum

按i節點查詢檔案(也就是id號)

find . –inum 262422

#查詢節點是26244的檔案

find是在系統當中搜尋符合條件的檔名。如果需要匹配,使用萬用字元匹配,萬用字元是完美匹配,相當於是模糊查詢例如:

萬用字元描述

例子

*匹配任意內容

find /root –name 「install.log*」(之所以加了引號是有可能不會識別萬用字元)

?匹配任意乙個字元

find /root –name 「ab?」

匹配任意乙個中括號內的字元

find /root –name 「ab[cd]」

grep [選項]  字串 檔名

#在檔案當中匹配符合條件的字串

選項

說明例子

grep 「size」 test.txt

在test.台下聽眾搜尋包含size這個字串的行

-i忽略大小寫

grep –i 「size」 test.txt

在test.台下聽眾搜尋包含size這個字串的行,不區分大小寫

-v排除指定字串

grep –v 「size」 test.txt

在test.台下聽眾搜尋包不含size這個字串的行

find:在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配,萬用字元是萬全匹配

grep:在檔案當中搜尋符合條件的字串,如果需要匹配,使用正規表示式進行匹配,正規表示式包時包含匹配

linux檔案搜尋命令和命令搜尋命令

1.locate 速度快 find 搜尋全部檔案 1 locate 檔名 在後台資料庫中按檔名搜尋 2 資料庫所在位置 var lib mlocate 可以切換到該目錄下看看 3 用命令updatedb更新後台資料庫 4 配置檔案在 etc updatedb.config 開啟檔案搜尋位置限制時可以...

linux 檔案搜尋命令

1,locate 檔名 1 如果touch乙個檔案,locate不會搜尋出來,是因為這個不是實時查詢的,他是搜尋的檔案資源庫在 var lib molcate mlocate.db中,需要updatedb更新一下db這個檔案 2 locate不能查詢tmp目錄下的檔案 i 不區分大小寫 2,whic...

Linux檔案搜尋命令

又要開始linux命令了!gogo locate 檔名 在後台資料庫中按檔名搜尋,搜尋速度更快。注意 只能夠按照檔名搜尋 q 在這裡我發現,搜尋第乙個檔案的時候是可以搜尋出來的,但我新建了乙個檔案,再搜尋就搜尋不出來了,這是為什麼呢?a 原來locate命令是從 var lib mlocate這個資...