檔案查詢命令find (筆記)

2021-09-20 14:54:18 字數 2258 閱讀 5415

之前所學的grep egrep fgrep 都是用來查詢文字中的某個字元匹配的

現在來學一下查詢檔案命令 locate find

locate 

此命令是非實時查詢檔案,它是根據全系統檔案資料庫進行查詢的,

僅用模糊匹配,非精確查詢

locate filename 即可實現查詢其它相關檔案

但是注意有時候如果系統是剛安裝的有可能還沒建立此資料庫,使用該命令會提示查詢不到資料庫

不過不用擔心使用updatedb即可自動生成資料庫,生成資料庫的時候有時候會很慢,這個根據使用者的

磁碟上所放的東西多少決定的

db庫存放在/var/lib/mlocate/mlocate.db

這個特點就是速度快

find命令

特點:實時查詢

精確匹配,遍歷指定目錄中的所有檔案完成查詢,所以速度慢

支援眾多查詢標準

用法格式:

find 查詢路徑 查詢標準 查詢到以後的處理動作action

查詢路徑:預設為當前目錄

查詢標準:預設為指定路徑下的所有檔案

action  :預設為列印到螢幕輸出

查詢標準

匹配標準:

-name 'filename'  對檔名作精確匹配

-iname 'filename' 查詢檔案名,但是忽略大小寫

-regex pattern    基於模式正規則表示式進行檔名匹配

-user username    根據屬主查詢檔案

-group groupname  根據屬組查詢檔案

-uid   uid        根據uid查詢檔案

-gid   gid        根據gid查詢檔案

-nouser           查詢沒有屬主的檔案

-nogroup          查詢沒有屬組的檔案

-type   f普通檔案 d目錄 c字元裝置 b塊裝置 l鏈結檔案 p管道裝置 s套接字裝置 按型別查詢

-size  [+|-] #k #m #g 中括號可省略+-表示大於小於#號是數字 按檔案大小查詢檔案

組合條件

-a  and 與    

-o  or  或   

-not  非

用法例:  find ./ -not -user user2 -a -not -user user1

解釋:查詢非屬主為user2且非屬主為user1的檔案

此條命令還可以這樣寫

find ./ -not \( -user user -o -user user1\) 摩根定律你懂得!

-mtime 修改時間

-ctime 改變時間

-atime 訪問時間

[+|-] # 

-5 表示5天之內

+5 表示5天之前

-mmin 修改分鐘

-cmin 改變分鐘

-amin 訪問分鐘

和上邊的區別是上方的單位是天,下方的單位是分鐘

-perm 644 許可權匹配,這個表示查詢精確匹配644許可權的檔案

-perm /644 許可權匹配,表示匹配其它任意一位許可權都ok

一位許可權的意思:644 為rw-r--r-- 表示匹配其中任何乙個許可權就列印到螢幕上

-perm -644 表示匹配包含該許可權的比如755 777 744 只要大於這個這個644的許可權就ok,

切記不可小於這個許可權比如633這個就不行

便於理解/表示或的意思 即其中只要有一位匹配就顯示

-表示完全匹配 即只可大於不可小於呵呵 

查詢到以後處理action 動作

-print 列印到螢幕

-ls    類似ls -l的形式顯示匹配到的檔案

-ok command {} \; 即可在匹配到的檔案後加要執行的命令,這個是固定格式

(注:此命令被執行時需要確認每一條)

-exec command {} \; 同上一條一樣,不同的是這個命令執行時不會提示是否需要執行

所以要在執行前確認確認再確認!!

xargs command  這個也是後邊可以接其它命令的

用法 find /etc -size +1m | xargs echo >> /tmp/large.file

最後加乙個問題 我沒想出來希望大神幫助一下看看怎樣組合命令!!

1.查詢一下/etc目錄下所有使用者都沒有執行許可權的檔案

已找到答案  find /etc -not -perm /222 

thanks for your watching!

winthcloud

檔案查詢命令 find

find命令可以查詢檔案,最常用的命令舉例 找出系統中檔名為 httpd.conf 的檔案 檔名引數,可以使用萬用字元 命令輸出如下 如果要過濾掉查詢過程中的錯誤資訊,可以使用如下命令 find name httpd.conf 2 test.txt 管道2輸出錯誤資訊,表示追加 find name ...

linux檔案查詢find命令

1.locate 與 find命令的區別 locate命令用於查詢檔案,它比find命令的搜尋速度快,它需要乙個資料庫,這個資料庫由每天的例行工作 crontab 程式來建立。當我們建立好這個資料庫後,就可以方便地來搜尋所需檔案了。即先執行 updatedb 無論在那個目錄中均可,可以放在cront...

Linux檔案查詢find命令

作用 實時查詢工具,通過遍歷指定路徑完成問件查詢,遞迴地在層次目錄中處理檔案 find搜尋目錄樹上的每乙個檔名,它從左至右運算給定的表示式,按照優先規則進行匹配,直到得出結果 左邊運算在 與 操作中得出假,在 或 操作中得出真 然後 find移向下乙個檔名。第乙個以 或 這些字元起始的引數是表示式的...