文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

摩根定律:

非(A 且 B)=(非 A)或(非 B)

非(A 或 B)=(非 A)且(非 B)

這樣看起來不是很好理解下面通過一些列圖片給大家展示; 
圖(1) 文件查找(Find和Locate)常用用法及摩根定律趣解(重要) 圖(2) 文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

圖二中的黑色就A且B,A且B的反面三種情況(如圖1)即為(非A)或(非B)。因此非(A且B)和(非A)和(非B)等價。這既是摩根定律

文件查找:

Linux常用的文件查找一共兩種,他們都有各自的優勢; locate, find 
非實時查找(數據庫查找):locate 
實時查找:find

locate: 依賴于事先構建的索引;索引的構建是在系統較為空閑時自動進行(周期性任務);手動更新數據庫(updatedb); 
索引構建過程需要遍歷整個根文件系統,極消耗資源(建議在空閑時候進行操作,務必注意); 工作特點: 
 1.查找速度快; 
 2.模糊查找; 
 3.非實時查找; 
 4.支持通配符     
常用用法:locate KEYWORD 
e.g.文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

locate的精確查找

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

locate的通配符用法

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

locate的正則表達式用法

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

find:實時查找工具,通過遍歷指定路徑下的文件系統完成文件查找;

  1.工作特點: 
  2.查找速度略慢; 
  3.精確查找; 
  4.實時查找;

    語法:
        find [OPTION]... [查找路徑] [查找條件] [處理動作]
            查找路徑:指定具體目標路徑;默認為當前目錄;
            查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行;默認為找出指定路徑下的所有文件;
            處理動作:對符合條件的文件做什么操作;默認輸出至屏幕;

常用選項

–P   這是默認的行為。當遇到鏈接文件時,查找條件匹配的是符號鏈接本身的屬性。

-L    當遇到鏈接文件時,追尋鏈接文件的目標進行查找。查找條件匹配的是目標文件的屬性。 

-Olevel    查詢優化。優化level分0-3四個等級。
根據文件名查找:
    -name "文件名稱":支持使用glob       
    *, ?, [], [^]      
    -iname "文件名稱":不區分字母大小寫

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

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

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

根據屬主、屬組查找:
                    -user USERNAME:查找屬主為指定用戶的文件;
                    group GRPNAME: 查找屬組為指定組的文件;

                    -uid UserID:查找屬主為指定的UID號的文件;
                    -gid GroupID:查找屬組為指定的GID號的文件;

                    -nouser:查找沒有屬主的文件;
                    -nogroup:查找沒有屬組的文件;
根據文件類型查找:

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)-type TYPE:

        f: 普通文件
        d: 目錄文件
        l: 符號鏈接文件
        s:套接字文件
        b: 塊設備文件
        c: 字符設備文件
        p: 管道文件
組合條件:
        與:-a
        或:-o
        非:-not, !
        !A -a !B = !(A -o B)
        !A -o !B = !(A -a B)

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

根據文件大小來查找:
            -size [+|-]#UNIT
            常用單位:k, M, G
            #UNIT: (#-1, #]
            -#UNIT:[0,#-1]
            +#UNIT:(#,oo)

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

根據時間戳:
    以“天”為單位;
    -atime [+|-]#,  
    #: [#,#+1)
    +#: [#+1,oo]
    -#: [0,#)
    -mtime
    -ctime
    以“分鐘”為單位:
    -amin
    -mmin
    -cmin

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

根據權限查找:(需先將摩根定律理解)
    -perm [/|-]MODE
    MODE: 精確權限匹配
    /MODE:任何一類(u,g,o)對象的權限中只要能一位匹配即可;
    -MODE:每一類對象都必須同時擁有為其指定的權限標準;

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

-inum N 按 inode 號查找
-samefile FILENAME 相同 inode 號的文件
-links N 鏈接數為 n 的文件

文件查找(Find和Locate)常用用法及摩根定律趣解(重要)

            處理動作:
                -print:默認的處理動作,顯示至屏幕;
                -ls:類似于對查找到的文件執行“ls -l”命令;
                -delete:刪除查找到的文件;
                -prune :忽略目錄
                e.g. fing /etc -path /var/log -a -prune -o -size 10k -a print 
                -fls /path/to/somefile:查找到的所有文件的長格式信息保存至指定文件中;
                -ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令;
                    對于每個文件執行命令之前,都會交互式要求用戶確認;
                -exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令; 
                    {}: 用于引用查找到的文件名稱自身;

                注意:find傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令;
                有些命令不能接受過多參數,此時命令執行可能會失??;另一種方式可規避此問題:
                    find | xargs COMMAND

原創文章,作者:fighter,如若轉載,請注明出處:http://www.www58058.com/37803

(0)
fighterfighter
上一篇 2016-08-21 20:46
下一篇 2016-08-21 20:46

相關推薦

  • 學習試題演練

    1.寫一個腳本實現:提示用戶給出自己的選擇隨后顯示對應的信息。 區分大小寫: if [[ "$option" =~ [Dd][Ii][Ss][Kk] ]];then 2.根據id號來判斷用戶類型,若沒有則提示沒有此用戶 0:管理員 1-999:系統用戶 1000+:登陸用戶 不得不提下: bash -n usertype.sh 前期擅用是…

    Linux干貨 2016-08-21
  • N22-love cat 17周博客作業第2部分-構建一個LVS-DR模型的高性能集群

    題目: 搭建一個LVS-DR模型的高性能集群,并實現以下功能:       (1)、wordpress程序通過nfs共享給個個realserver;       (2)、后端realserver中的nginx和php分離; 第17周   第2部分 網…

    Linux干貨 2016-08-15
  • centos查看和修改文件權限

      查看權限在終端輸入: ?ls -l?xxx.xxx (xxx.xxx是文件名)那么就會出現相類似的信息,主要都是這些:-rw-r–r–其中: 最前面那個 – 代表的是文件類型中間那三個 rw- 代表的是所有者(user)然后那三個 r– 代表的是組群(group)最后那三個 r– ? …

    2017-11-26
  • 軟件包管理器之一——RPM介紹及應用

    一、前言:     在沒有軟件包管理器前,用戶都是通過源代碼的方式來安裝軟件。但是我們很容易發現,在每次安裝軟件時都必須對操作系統的境、編譯的參數進行對應的編譯,并且操作過程很是復雜,這對于不熟悉操作系統的朋友來說真心困難,那么有沒有一款軟件能讓用戶能很簡單的安裝所需的軟件呢?    &n…

    Linux干貨 2015-07-20
  • 馬哥教育網絡20期+第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; :%s/^[[:space:]]/#&/ 2、復制/boot/grub/grub.conf至/tmp目錄中,刪除/tmp/grub.conf文件中的行首的空白…

    Linux干貨 2016-07-07
  • linux基礎知識:文件管理,bash特性

    本文簡要介紹了文件類的管理命令,包括mv、cp、mkdir等等。還介紹了一些萬用字符的用法。

    2017-12-12

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-22 10:03

    后面的博客需要認真完成哦

欧美性久久久久