有的時候我們需要快速查詢一些檔案,但是我們卻不知道這個檔案在哪的時候,就急切的需要乙個工具來幫助我們,這時候find就誕生了。find能實現精確查詢,雖然速度略慢,但是並不妨礙我們使用,下面就介紹一下find的使用方法。
基於時間戳的查詢
假如需要檢視七天前的檔案,但是總不能一一的去看時間查詢,這點和windows不一樣,windows可能是預設的按時間先後順序排列的,所以在這裡我們就要基於命令去查詢了。以天為單位的選項分別有atime,mtime,ctime.
分別是訪問時間,檔案資料修改時間,檔案元資料修改時間。下面舉例說明,以便讓大家更好的明白。
解釋:-atime 就是訪問時間,-5就是指0到5天以內的,-ls就是長列出所查到的檔案,這裡需要說明一下時間的問題。如果是按時間或者天數來算的話,-5是[0,5),意思就是大於等於0 且小於5,+5是[6,無窮),意思就是大於等於6,直接就乙個5的話,就是[5,6),意思就是大於等於5且小於6.
基於檔案使用者名稱查詢
假如你想找user是joe的檔案,只需選項-user.
基於檔案大小查詢
假如想查詢檔案大於1m的,只需選項-size
下面開始擷取符合規定的檔案
解釋:-size就是基於檔案大小查詢,+1m就是(1,無窮),意思就是大於1m的檔案。
基於檔案型別查詢
解釋:-type就是基於型別查詢,d就是目錄的意思,f為普通檔案,l符號鏈結檔案,s套接字檔案,b塊裝置檔案,c字元裝置檔案。
基於檔案許可權查詢
選項是-perm 許可權
解釋:-perm就是 基於許可權的查詢,/111意思是ugo任意一位有執行許可權就可以。
基於組名的查詢
選項是 –group 組名
解釋:-group 就是基於組名的查詢。
基於檔案uid的查詢
選項是-uid userid
基於檔名稱的查詢
選項是-name
解釋:a*的意思就是以a開頭 後面跟任意內容的檔案。
基於沒有所屬人沒有所屬組的查詢
假如乙個檔案所屬人,所屬組被刪除了,但是想查詢,就需要這個命令,-nouser -nogroup
eg:查詢沒有所屬組的檔案
eg:查詢沒有所屬人的檔案
解釋:-nouser就是沒有所屬人,-nogroup就是沒有所屬組
下面給出一些平時的練習,以供參考。
1.查詢/var目錄下不屬於root、lp、gdm的所有檔案
解題方法:find /var -not \( -user root -o -user lp -o -user gdm \) -ls
解題思路:-o就是或的意思,-a就是且的意思,-not就是非的意思。在這裡使用了德摩根定理,如下:
(非 a) 或 (非 b) = 非(a 且 b)
(非 a) 且 (非 b) = 非(a 或 b)
所以查詢不屬於三個使用者的檔案就是不屬於root,也不屬於lp,也不屬於gdm,所以用-not的話 ,括號裡面就要用或的關係,才能保證三個條件都滿足。
2.查詢當前系統上沒有屬主或屬組,且最近乙個週內曾被訪問過的檔案
解題方法:find / \( -nouser -o -nogroup \) -a -atime -7 –ls
解題思路 :使用-o就是或的關係,但是中間要用括號括起來,不然的話後面的-a連著的就只有 –nogroup了,使用\是轉義的意思,在這裡不能直接識別括號,所以需要轉義。
3.查詢/etc目錄下所有使用者都沒有寫許可權的檔案
解題方法:find /etc ! -perm /222 –ls
解題思路:前面說過/111,這裡/222意思和那個是大致一樣的,意思就是任意一位有讀許可權就可以,前面加個!就是非的意思,這裡使用德摩根定理,不會的同學可以看一下前面的。
檔案查詢工具 locate和find
locate命令主要依賴於事先構建好的索引庫。索引庫中收集了系統中所有檔案的路徑資訊。索引庫一般通過系統的週期性任務實現自動更新,也可使用updatedb命令進行手動更新。更新索引庫是乙個很消耗系統資源的操作,一般在系統空閒時進行。locate在進行檔案查詢時,根據給出的指定字串,在索引庫中進行查詢...
linux下檔案查詢工具 find
常用的檔案查詢命令有 which,locate,find 查詢二進位制數或二進位制命令,由path給出 特點 1.非實時,每天在系統上生成資料庫,通過資料庫查詢 2.模糊查詢 3.updatedb,實時查詢需要進行資料的更新,更新一般需要幾分鐘時間,所以一般是在晚上 4.查詢速度快 特點 1.實時查...
bash程式設計之 find檔案查詢工具
find 檔案查詢工具,通過遍歷指定路徑下的檔案系統完成查詢,速度慢,但執行精確查詢 語法 find options 查詢路徑 查詢條件 處理動作 查詢路徑 預設為當前目錄 查詢條件 默示查詢所有檔案 處理動作 顯示至螢幕 1 查詢條件 1.1 根據檔案名字查詢 name 檔名稱 支援使用globb...