Linux文件查找

文件查找

1、locate 根據全系統文件數據庫進行查找(非實時的,系統每天特定時間對系統中所有文件都進行收集存庫)(非實時模糊查找)

update  手動生成文件數據庫(運行一遍要很長時間)

2、find  (實時精確遍歷系統目錄文件)

使用方法:find 查找路徑 查找標準 查找後的處理動作

    查找路徑:默認爲當前目錄

    查找標準:默認爲指定路徑下的所有文件

    處理動作:默認爲打印到屏幕上

            -name  FILENAME

                 支持通配符

            -iname  FILENAME    不區分大小寫

            -regex PATTERN 基於正則表達式

            -user USERNAME 根據屬主查找

            -user GROP  根據屬組查找

            -uid ID  根據用戶id查找

            -gid ID  根據組id查找

            -nouser 查找沒有屬主的文件

            -nogroup 查找沒有屬組的文件

 

            -type 根據文件類型來查找

               f:普通文件

               d:目錄

               c  b  l  p  s...

            -size 根據文件大小來查找  (  小於整數時向上取整 )

               [+|-]#K       

               [+|-]#M

               [+|-]#G

  

            組合條件

                  -a

                  -o

                  -not

                例:find /tmp  -nouser -a type d

                find /tmp -not -type d

                find ./ -not \(-user user1 -o -user user2\)

 

            -mtime   創建時間(天)

            -ctime    修改時間(天)

            -atime    訪問時間(天)

                 以此刻時間爲準向前的時間

            [+ | -]   + time   時間time天之前    

                    - time   時間time天內

            -mmin

            -cmin

            -amin

               [+ | -]     用法和time相同單位爲分鐘

             

            -pern 權限

        查找某權限的文件

        MODE    權限等於MODE的文件

            /MODE   任意一位匹配就滿足條件

            -MODE   文件權限能完全包含此MODE時才符合條件

 

 

            find    執行動作

                -print    顯示

                -ls     類似ls -l的形式顯示每一個文件的詳細信息

              

                -ok  COMMAND {} \:        每一次操作都要用戶確認    花括號表示引用查到的文件名

                -exec COMMOAND {} \:       不要用戶確認

                例: find ./ -perm -006 -exec chmod o-w {} \:

                     find ./ type d -ok chmod +x {} \:

                     find ./ -perm -020 mv {} {}.new \:

             

                查找內容 | xargs  CPMMAND    將查找到的內容直接使用管道送給xargs   後面跟命令進行處理

                 例: find /etc -size +1M | xargs echo >> /tem/etc.la 

             

 

 總結:

     locate 是從數據庫中查找文件,可能因爲數據庫沒有更新而不會實時的查找文件,但是速度會比find快很多

     find是實時的根據路徑逐一的對文件進行檢索,速度肯定沒有locate快,但是會實時查找,總的來說find會比較常用一些。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章