天天看點

Linux學習日記--基礎指令(10)--檔案查找

檔案查找:

檔案查找:locate, find

        非實時查找(資料庫查找):locate

        實時查找:find

    locate:

        依賴于事先建構的索引;索引的建構是在系統較為空閑時自動進行(周期性任務);手動更新資料庫(updatedb);

        索引建構過程需要周遊整個根檔案系統,極消耗資源;

        工作特點:

            查找速度快;

            模糊查找;

            非實時查找;

        locate KEYWORD

    find:

        實時查找工具,通過周遊指定路徑下的檔案系統完成檔案查找;

        工作特點:

            查找速度略慢;

            精确查找;

            實時查找;

        文法:

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

                查找路徑:指定具體目标路徑;預設為目前目錄;

                查找條件:指定的查找标準,可以檔案名、大小、類型、權限等标準進行;預設為找出指定路徑下的所有檔案;

                處理動作:對符合條件的檔案做什麼操作;預設輸出至螢幕;

                查找條件:

                    根據檔案名查找:

                        -name "檔案名稱":支援使用glob

                            *, ?, [], [^]

                        -iname "檔案名稱":不區分字母大小寫

                        -regex "PATTERN":以PATTERN比對整個檔案路徑字元串,而不僅僅是檔案名稱;

                    根據屬主、屬組查找:

                        -user USERNAME:查找屬主為指定使用者的檔案;

                        group GRPNAME: 查找屬組為指定組的檔案;

                        -uid UserID:查找屬主為指定的UID号的檔案;

                        -gid GroupID:查找屬組為指定的GID号的檔案;

                        -nouser:查找沒有屬主的檔案;

                        -nogroup:查找沒有屬組的檔案;

                    根據檔案類型查找:

                        -type TYPE:

                            f: 普通檔案

                            d: 目錄檔案

                            l: 符号連結檔案

                            s:套接字檔案

                            b: 塊裝置檔案

                            c: 字元裝置檔案

                            p: 管道檔案

                    組合條件:

                        與:-a

                        或:-o

                        非:-not, !

                        !A -a !B = !(A -o B)

                        !A -o !B = !(A -a B)

                     根據檔案大小來查找:

                        -size [+|-]#UNIT

                            常用機關:k, M, G

                            #UNIT: (#-1, #]

                            -#UNIT:[0,#-1]

                            +#UNIT:(#,oo)

                    根據時間戳:

                        以“天”為機關;

                            -atime [+|-]#,  

                                #: [#,#+1)

                                +#: [#+1,oo]

                                -#: [0,#)

                            -mtime

                            -ctime

                        以“分鐘”為機關:

                            -amin

                            -mmin

                            -cmin

                    根據權限查找:

                        -perm [/|-]MODE

                            MODE: 精确權限比對

                            /MODE:任何一類(u,g,o)對象的權限中隻要能一位比對即可;

                            -MODE:每一類對象都必須同時擁有為其指定的權限标準;