Linux檔案查詢

2022-08-05 01:24:15 字數 2994 閱讀 4741

查詢系統上預先建立的檔案索引資料庫 /var/lib/mlocate/mlocate.db

locate查詢事先依賴於先構建的索引,索引的構建是在系統較為空閒時自動進行(週期性任務),或管理員手動更新資料庫(updatedb)

索引構建過程需要遍歷整個根檔案系統,極消耗資源.

工作特點:

非實時查詢(資料庫查詢:locate)

查詢速度快

模糊查詢

搜尋的是檔案全路徑,不僅僅是檔名

可能只所搜使用者具備讀取和執行許可權的目錄

locate使用方法

安裝locate命令

yum install mlocate

初始化sudo updatedb

選項選項

說明-i

忽略大小寫

-n只列出符合條件的前幾個

-r支援正規表示式

實施查詢工具,通過遍歷指定路徑完成檔案查詢

特性

查詢速度略慢

精確查詢

實時查詢

可能只搜尋使用者具備讀取和執行許可權的目錄

基本語法: find [option] .... [查詢路徑] [查詢條件] [處理動作]

1.搜尋層級

-maxdepth level     最大搜尋目錄深度,指定目錄為第1級 

-mindepth level 最小搜尋目錄深度

2. 根據檔名和inode查詢

-name "檔名稱"         根據檔名查詢支援使用glob萬用字元

-iname "檔名稱" 不區分字母大小寫

-inum n 按inode號查詢

-samefile name 相同inode號的檔案

-links n 鏈結數為n的檔案

-regex "pattern" 以pattern匹配整個檔案路徑字串,而不僅僅是檔名稱

3. 根據屬主,屬組查詢

-user username    查詢屬主為指定使用者(uid)的檔案

-group grpname 查詢屬組為指定組(gid)的檔案

-uid userid 查詢屬主為指定的uid號的檔案

-gid groupid 查詢屬組為指定的gid號的檔案

-nouser 查詢沒有屬主的檔案

-nogroup 查詢沒有屬組的檔案

4. 根據檔案型別查詢

-type type: 

f: 普通檔案

d: 目錄檔案

l: 符號鏈結檔案

s:套接字檔案

b: 塊裝置檔案

c: 字元裝置檔案

p: 管道檔案

5. 根據檔案大小

-size [+|-]#unit 常用單位:k, m, g,c(byte) 

例如:-size 2k 匹配取值為(1k~2k)

-size -5k 取值範圍為(0-4k包括5k)

-size +5k 取值範圍為(5k+ 不包括5k)

6. 根據時間戳查詢

以"天"為單位

-atime [+|-]# 讀取時間

#: [#,#+1]次

+#: [#天以上]

-#: [0,#不包括#天]

-mtime 修改時間

-ctime 狀態更改時間

以"分鐘"為單位

-amin

-mmin

-cmin

7. 根絕檔案許可權查詢

-perm #

例如: -perm 600

/600 或者模糊匹配

-602 other許可權位有讀許可權才會匹配

-print     列印輸出預設

-ls 顯示詳細資訊

-delete 刪除匹配的檔案

-fls file 匹配到的檔案重定向到指定的檔案中

-ok command {} \; 對每個檔案指定command命令,每個檔案需要互動使用者確認

-exec command {} \; 類似-ok,不需要使用者互動確認.

組合條件

與:-a

或:-o

非:-not, !

1. 使用locate忽略大小寫查詢 password檔案

2. 使用find查詢/下所有沒有屬主屬組的檔案

3. 使用find查詢屬主為root 屬組不為test 任意乙個許可權位包含777的鏈結檔案

4. 使用find 找到 hh1-10 檔案並刪除

5. 使用find 找到/var/log/ 下面型別為普通檔案,七天之前的所有檔案按照修改日期查詢

答案

1. 使用locate忽略大小寫查詢 password檔案

locate -i password

2. 使用find查詢/下所有沒有屬主屬組的檔案

find / -nouser -nogroup

3. 使用find查詢屬主為root 屬組不為test 任意乙個許可權位包含777的鏈結檔案

find / -user root -not -group test -perm /777 -type l

4. 使用find 找到 hh1-10 檔案並刪除

find / -iname "hh*" -exec rm -rf {} \;

5. 使用find 找到/var/log/ 下面型別為普通檔案,七天之前的所有檔案按照修改日期查詢

find /var/log/ -type f -mtime +7

linux檔案查詢

命令與檔案的查詢 which 尋找執行檔案 which a command a 將所有由path目錄中可以找到的命令均列出來,而不只是第乙個被找到的命令名稱 eg which a ifconfig 檔案的查詢 whereis 尋找特定的檔案 bmsu 檔案或者目錄 引數 b 只尋找二進位制檔案 m ...

linux 檔案查詢

文字查詢 grep egrep fgrep 檔案查詢 locate find locate和find的區別 locate有自維護的資料庫 linux自建,與所有檔案關聯 每天linux會定時對其進行更新,而locate就在此資料庫中查詢,所以查詢速度非常快,但是缺點也很明顯,不能實時查詢 比如剛裝l...

Linux 檔案查詢

檔案查詢 簡介which 命令查詢 find 檔案查詢,針對檔名 locate 檔案查詢,依賴資料庫 一 命令檔案查詢 一 查詢ls 命令的位置 which ls 從path環境變數或者 whereis vim二 任意檔案 find 語法find path options expression ac...