Linux文件的查找:whereis、locate、find正則表達式
相對來講,find查找的速度比較慢;由於whereis與locate是利用數據庫來查找數據,因此相對比較快,並且並無實際查詢硬盤,比較節省時間。數據庫
whereis(尋找特定文件) whereis [-bmsu] 文件或目錄名socket
-b:只找二進制格式的文件ide
-m:只找在說明文件manual路徑下的文件ui
-s:只找source源文件spa
-u:查找不在上述三個選項當中的其餘特殊文件3d
locate locate [-ir] keywordorm
-i:忽略大小寫的差別blog
-r:後面可接正則表達式的顯示方式get
由於Linux系統會將系統內的全部文件記錄在一個數據庫文件裏面,二當使用whereis或locate時都會以此數據庫文件的內容爲準,所以,有時會找到已經刪除的文件,而找不到最新的剛纔建立的文件。
find find [PATH] [option] [action]
參數:
一、與時間有關的參數:-atime、-ctime、-mtime
(1)訪問時間(-atime):用戶最近一次訪問文件的時間;
(2)修改時間(-mtime):文件內容最後一次被修改的時間。
(3)變化時間(-ctime):文件元數據(metadata,例如權限或全部權)最後一次改變的時間。
以-mtime爲例:
-mtime n:n爲數字,意義爲在n天以前的「一天以內」被更改過的文件
-mtime +n:列出在n天以前(不含n天自己)被更改過的文件
-mtime -n:列出在n天以內(含n天自己)被更改過的文件
-mtime file:file爲一個存在的文件,列出比file還要新的文件
二、與用戶或用戶組名有關的參數
(1)-uid n:n爲數字,是用戶的帳號ID,即UID,這個UID是記在/etc/passwd裏面的與帳戶名稱相對應的數字
(2)-gid n:n爲數字,是用戶組名的帳號ID,即GID,GID是記錄在/etc/group中。
(3)-user name:name爲用戶名帳號名稱,例如:fucang
(4)-group name:name爲用戶組名,例如:user
(5)-nouser:尋找文件的全部者不存在/etc/passwd中的文件
(6)-nogroup:尋找文件的全部組不存在/etc/group中的文件
三、與文件權限及名稱有關的參數
(1)-name filename:查找文件名爲filename的文件
(2)-size [+-]SIZE:查找比SIZE還要大(+)或小(-)的文件。
SIZE的規格:c:表明byte,k:表明1024bytes
eg:找比50KB還要大的文件,就是「find -size +50k」
(3)-type TYPE:查找文件的類型爲TYPE的,類型主要有:
通常正規文件(f)、設備文件(b、c)、目錄(d)、
鏈接文件(l)、socket(s)、FIFO(p)等
(4)-perm mode:查找文件權限「恰好等於」mode的文件,mode相似chmod的
屬性值,eg:-rwxr-xr-x的屬性值爲0755
(5)-perm -mode:查找文件權限「必須所有包含mode的權限」的文件
(6)-perm +mode:查找文件權限「包含任意一個mode的權限」的文件,
eg:咱們查找-rwxr-xr-x,即-perm +755時,一個文件屬性爲-rw-------也會被 列出來,由於它有-rw...
四、其餘操做
-exec command:command爲其餘命令,-exec後面可再接其餘的命令來處理查找的結果
將find -perm 0664查找到的結果放入到{ }中並用ls -l這個結果
-print:將結果打印到屏幕上(這個操做是默認操做)