Linux文件的查找:whereis、locate、find
相對來說,find查找的速度比較慢;因爲whereis與locate是利用數據庫來查找數據,所以相對比較快,而且並沒有實際查詢硬盤,比較節省時間。
whereis(尋找特定文件) whereis [-bmsu] 文件或目錄名
-b:只找二進制格式的文件
-m:只找在說明文件manual路徑下的文件
-s:只找source源文件
-u:查找不在上述三個選項當中的其他特殊文件
locate locate [-ir] keyword
-i:忽略大小寫的差異
-r:後面可接正則表達式的顯示方式
因爲Linux系統會將系統內的所有文件記錄在一個數據庫文件裏面,二當使用whereis或locate時都會以此數據庫文件的內容爲準,因此,有時會找到已經刪除的文件,而找不到最新的剛纔創建的文件。
find find [PATH] [option] [action]
參數:
1、與時間有關的參數:-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還要新的文件
2、與用戶或用戶組名有關的參數
(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中的文件
3、與文件權限及名稱有關的參數
(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...
4、其他操作
-exec command:command爲其他命令,-exec後面可再接其他的命令來處理查找的結果
將find -perm 0664查找到的結果放入到{ }中並用ls -l這個結果
-print:將結果打印到屏幕上(這個操作是默認操作)