Linux find命令詳解和實例說明

感謝有奉獻精神的人

轉自:http://blog.csdn.net/lsbhjshyn/article/details/25541745

find:搜索文件或目錄
例:find . -name '*.jsp' -mtime -90  //查找當前目錄下90天之內修改過的以jsp後綴的文件
-name: 根據名字查找,支持glob通配符* ? []等
-iname: 忽略名稱大小寫
-empty: 查找所有空文件或者空目錄,連接空文件除外
-user USERNAME:查找某個屬主的文件
-group GRPNAME:查找某個屬組的文件
-uid:根據屬主ID查找相關文件
-gid:根據屬組ID查找相關文件
-nouser: 查找沒有屬主的文件
-nogroup:查找沒有屬組的文件
-exec :對找到的檔案執行命令(固定格式:'-exec 命令 {} \;')不詢問。-ok執行前詢問確認。格式'-ok 命令 {} \;'    其中‘{}’表示find查詢的結果,'\'爲轉義字符,表示讓一些命令或符合使用本身含義
例: find . -size +10M -exec ls -lh {} \;  //查找當前目錄下大小超過10M的,並顯示詳細信息


組合查找條件
-a:與
-o:或
-not或!:非
例:find /etc -name ‘init*’ -a -user root    //查找/etc目錄下,文件名以init開頭,並且文件所有者爲root的文件


-type 根據文件類型查找。f:二進制文件 l:軟連接文件 d:目錄
-size  +[-]UNIT  表示大於或小於多少的文件
提示:檢索文件大小時,以linux的black數據塊大小換算,這樣查詢更快,更精確。例如:centos5.5的black大小爲512字節,查找一個大於100M的文件命令爲:find /etc -size +204800   //查找/etc下大於100M的文件

例:ls -ldh `find /etc/ -size +2k`   //查看/etc目錄下大於2k的文件
    ls -ldh `find /etc/ -size -2k`   //查看/etc目錄下小於2k的文件  
    find /etc -size +163840 -a -size -204800     //查找/etc下大於80M小於100M的文件


根據時間戳查找:
-amin [+/-]n:n分鐘前訪問的文件
-mmin [+/-]n: n分鐘前修改過的文件  
-cmin [+/-]n: n分鐘前改變過的文件
-atime: [+/-]n n天內訪問過的文件
-mtime: [+/-]n n天內修改過的文件
-ctime: [+/-]n n天內改變過的文件
其中:c 爲change 改變,表示文件屬性被修改過,所有者,所屬組,權限等;a爲access 訪問,表示文件被訪問過; m爲modify 修改,表示文件內容被修改過  -:表示在指定值之內;+:表示超過指定值


-inum:根據文件i節點(inode值)查找  (ls -i file即可顯示文件inode)
例:find /data -name ‘*.log’ -a -inum 767301 -exec rm -rf {} \;   //查找/data目錄下以.log結尾並且inode值爲7673016的文件,之後強制刪除




根據權限查找文件:
-perm node :精確查找指定權限的文件      例:find /etc -perm 755  //在etc目錄下查找權限爲755的文件
-perm -node:分別在對應的權限範圍內的文件(符合條件的爲與關係)  例:find /etc -perm -755 //查找etc目錄下屬主、屬組、其他權限分別大於755(即權限對應位是否存在的包含關係)的文件
例:find /data -perm -002   //查找data目錄下其他用戶可寫的文件
-perm /node 查找分別對應的權限位和條件爲或關係的文件


類似功能命令:locate 尋找文件或目錄 (是在linux的系統目錄文件的數據庫中查找,結果會有延遲,若要及時可手動執行updatedb更新系統目錄文件數據庫)


發佈了103 篇原創文章 · 獲贊 60 · 訪問量 70萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章