文件查找命令及find命令

一、文件查找工具 locate,find

locate:

      根據此前updatedb命令生成的數據庫來完成文件查找

      查找速度快,

      非實時查找,模糊查找,

locate  FILENAME

     -b  查找文件名中包含目標字符的文件(不包含目錄)


find:通過遍歷指定的目標目錄,實時查找符合指定屬性的文件:

       精確匹配,速度略慢

find [OPTINS] [查找路徑] [查找條件] [處理動作]

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

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

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

       查找條件:

               -name "文件名"  支持文件名通配*,?,[],[^]

               -iname "文件名"   文件名不區分大小寫

               -regex "PATTERN"  以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名

               -user   USERNAME   根據文件屬主查找

               -group  USERNAME   根據文件屬組查找

               -uid     UID   根據指定UID查找

               -gid     GID   根據指定GID查找

               -nouser  查找沒有屬主的文件

               -nogroup 查找沒有屬組的文件

               -type TYPE 根據文件類型查找

                      f   普通文件 

                      d   目錄文件

                      l   符號鏈接文件

                b 塊設備文件,c 字符設備文件  p 命令名管道文件  s  套接字文件

               -size  [+|-]#UNIT    常用單位K,M,G

                           #UNIT    #-1 < x <= #   例:2k表示:1.01k到2k

                           -#UNIT   x <= #-1       例:-2k表示:小於等於1k

                           +#UNIT   x > #              +2k       大於2K不包括2K

   根據時間戳來查找:        

               以天爲單位:

                     -atime [+|-]#       #:    #=< x < #+1   大於3天但不到4天

                                        -#:       x < #     小於3天

                                        +#:    x >= #+1     大於等於4天

                     -mtime,-ctime

               以分鐘爲單位:

                     -amin[+|-]#

                     -mmin,-cmin

                根據權限查找:

                     -perm [+|-]MODE

                        MODE:與MODE精確匹配

                        /MODE或+MODE:任何一類用戶只要能包含對其指定的任何一位權限即可   例:+555  表示只要目錄文件只要屬主或數組或任何人中只要有W或X就匹配

                       -MODE:每一類用戶的權限都包含對其指定的所以權限

                               -222:   666權限的文件符合   664不符合

  組合查找條件:

         與:-a         查找條件1 -a 查找條件2 -a ....

         或 -o

         非 -not或-! find /tmp -not -user root -ls

        find /tmp -nouser -o -user xj -ls

        find /tmp \( -nouser -o -user xj \) -ls


處理動作:

     -print:默認動作,打印至屏幕

     -ls:顯示找到的文件的詳細屬性

     -delete:刪除查找到的文件

     -fls /FILENAME:查找到的文件的詳細路徑信息保存至指定文件中

     -exec COMMAND {} \;    #不會提示確定,直接操作

     -ok  COMMAND {} \;    #會提示確定,直接操作

         注意:find命令會一次性找到所有符合條件的文件,並一同傳遞給後面的命令,但有些命令不能接受過長的參數,解決辦法:find |xargs COMMAND

  找到文件後把文件名改成之前文件後加上.notroot?


利用i節點刪除亂碼文件

find ./ -inum 12345 -exec rm {} -rf \;

1
2
3
4
5
6
[xiejun@localhost ~]$ find /tmp ! -user root -ls
1308240    0 -rw-rw-r--   1 xiejun   xiejun          0 Aug 24 14:21 /tmp/1test
[xiejun@localhost ~]$ find /tmp ! -user root -exec mv {} {}.notroot \;
[xiejun@localhost ~]$ find /tmp ! -user root -ls
1308240    0 -rw-rw-r--   1 xiejun   xiejun          0 Aug 24 14:21 /tmp/1test.notroot
[xiejun@localhost ~]$


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