溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Linux文件查找

發(fā)布時(shí)間:2020-07-21 02:45:16 來(lái)源:網(wǎng)絡(luò) 閱讀:572 作者:迷途不知返 欄目:數(shù)據(jù)庫(kù)

Linux文件查找詳解

  我們之前學(xué)過(guò)的grep、egrep以及fgrep命令是Linux的文本查找命令,只是單純地匹配字符串的命令,而不是文件查找命令。

·文件查找的常用命令

    1,locate:

       locate是在全系統(tǒng)查找文件的命令,但是locate的查找是非實(shí)時(shí)的、非精確的,進(jìn)行模糊匹配的一種查找方式,因?yàn)榇朔N文件查找的方式是根據(jù)全系統(tǒng)文件數(shù)據(jù)庫(kù)進(jìn)行的,而該數(shù)據(jù)庫(kù)只有在每天晚上才會(huì)更新,因此是非實(shí)時(shí)查找,但是這個(gè)文件數(shù)據(jù)庫(kù)我們可以手動(dòng)生成,為了使我們可以實(shí)時(shí)的查找文件,我們可以手動(dòng)更新該數(shù)據(jù)庫(kù)。

       生成文件數(shù)據(jù)庫(kù)的命令:updatedb

       優(yōu)點(diǎn):locate命令執(zhí)行速度快

        Linux文件查找

    2,find:

        find命令支持實(shí)時(shí)查找,精確查找,而且支持多種查找標(biāo)準(zhǔn),但是find命令的執(zhí)行速度慢,這是因?yàn)閒ind命令是遍歷指定目錄下的所有文件進(jìn)行查找,所以執(zhí)行速度慢。

        用法格式:

        ->find 查找路徑 查找標(biāo)準(zhǔn) 查找以后的處理動(dòng)作

        查找路徑可以省略,省略以后就表示默認(rèn)查找當(dāng)前目錄

        查找標(biāo)準(zhǔn)默認(rèn)為查找指定路徑下的所有文件

        查找處理動(dòng)作(action),默認(rèn)為輸出至標(biāo)準(zhǔn)輸出

        Linux文件查找


        (1)查找(匹配)標(biāo)準(zhǔn)(選項(xiàng)):

        ->-name(嚴(yán)格區(qū)分大小寫(xiě)查找) 'filename':對(duì)文件名做精確匹配

            Linux文件查找

            支持文件名通配

            *->用來(lái)實(shí)現(xiàn)匹配任意長(zhǎng)度的任意字符

            Linux文件查找

            ?->用來(lái)實(shí)現(xiàn)匹配單個(gè)字符

            Linux文件查找

            []->用來(lái)實(shí)現(xiàn)匹配指定范圍內(nèi)的任意單個(gè)字符

            Linux文件查找

        ->-iname:文件名匹配不區(qū)分大小寫(xiě)

            Linux文件查找

        ->-regex:基于正則表達(dá)式進(jìn)行文件名查找

            格式:-regex pattern

            

        ->-user:根據(jù)文件的屬主來(lái)進(jìn)行文件的查找

            格式:-user username

            Linux文件查找

        ->-group:根據(jù)文件的屬組來(lái)進(jìn)行文件的查找

            格式:-group groupname

            Linux文件查找

        ->-uid:根據(jù)uid查找,一旦某個(gè)用戶(hù)被刪除之后,此前所有屬于這個(gè)用戶(hù)的文件的屬主將變?yōu)檫@個(gè)用戶(hù)的id號(hào)

            Linux文件查找

            格式:-uid uid

            Linux文件查找

        ->-gid:根據(jù)gid查找,一旦某個(gè)用戶(hù)的屬組被刪除之后,此前所有屬于這個(gè)用戶(hù)基本組的文件的屬組將變成這個(gè)用戶(hù)的基本組id號(hào)

            Linux文件查找

            格式:-gid gid

            Linux文件查找

        ->-nouser:查找沒(méi)有屬主的文件

            Linux文件查找

        ->-type:根據(jù)文件類(lèi)型來(lái)查找文件

            f:普通文件

              Linux文件查找

            d:目錄

              Linux文件查找

            c:字符設(shè)備

              Linux文件查找

            b:塊設(shè)備

            Linux文件查找

            l:鏈接文件

            Linux文件查找

            p:管道設(shè)備

            Linux文件查找

            s:套接字設(shè)備

            Linux文件查找

        ->-size:根據(jù)文件大小來(lái)查找文件

            [+|-]#:+表示大于,-表示小于,#表示數(shù)值大小(不加+|-表示等于),只寫(xiě)#表示精確查找。

                k表示KB

                M表示MB

                G表示GB

            Linux文件查找

            大小匹配的法則:精確查找時(shí)會(huì)有誤差,但是誤差一般小于1,且小于所要匹配的數(shù)值。


·組合條件查找,默認(rèn)為邏輯與關(guān)系

   ->-a:邏輯與關(guān)系

        Linux文件查找

   ->-o:邏輯或關(guān)系

        Linux文件查找

   ->-not:邏輯非關(guān)系

     Linux文件查找

        練習(xí):

        1,查找/tmp目錄下,不是目錄且不是套接字類(lèi)型的文件

            Linux文件查找

        2,查找/tmp/test目錄下,屬主不是user1,也不是user2的文件 

          Linux文件查找

        

·根據(jù)時(shí)間戳查找文件

    時(shí)間為天數(shù):

    格式:

      ->-mtime [+|-]#:修改時(shí)間

        Linux文件查找

      ->-ctime [+|-]#:改變時(shí)間

        Linux文件查找

      ->-atime [+|-]#:訪問(wèn)時(shí)間

        Linux文件查找

      ->#表示距離現(xiàn)在的第#天有動(dòng)作,+#表示距離現(xiàn)在的第#天之前有動(dòng)作,-#表示距離現(xiàn)在的第#天之后有動(dòng)作

        Linux文件查找

     時(shí)間為分鐘

     格式:

      ->-mmin [+|-]#:修改時(shí)間

        Linux文件查找

      ->-cmin [+|-]#:改變時(shí)間

        Linux文件查找

      ->-amin [+|-]#:訪問(wèn)時(shí)間

        Linux文件查找

      ->#表示距離現(xiàn)在的第#分鐘有動(dòng)作,+#表示距離現(xiàn)在的第#分鐘之前有動(dòng)作,-#表示距離現(xiàn)在的第#分鐘之后有動(dòng)作

        Linux文件查找

·根據(jù)權(quán)限來(lái)查找

    格式:

      ->-perm MODE:表示精確匹配

        Linux文件查找

      ->-perm +MODE:三位權(quán)限任意一位匹配即滿(mǎn)足條件

        Linux文件查找

      ->-perm -MODE:文件權(quán)限能完全包含此MODE才符合條件

        Linux文件查找

       (2)查找以后的處理動(dòng)作(action):

            默認(rèn)為-print(顯示出來(lái))

            Linux文件查找

          ->-ls:類(lèi)似于命令ls -l的形式顯示每一個(gè)文件的詳細(xì)信息

            Linux文件查找

          ->-ok:-ok表示處理動(dòng)作的每一步都需要用戶(hù)確認(rèn)

                固定格式:-ok COMMAND {} \;

                Linux文件查找

           花括號(hào)表示的是前面find命令查找到的文件名

          ->-exec:-exec的處理動(dòng)作不需要用戶(hù)確認(rèn),一氣呵成

                固定格式:-exec COMMAND {} \;

            Linux文件查找

         


    練習(xí):

    1,查找/var目錄下屬主為root并且屬組為mail的所有文件

        Linux文件查找

    2,查找/usr目錄下不屬于root、bin或student的文件

       Linux文件查找Linux文件查找

    3,查找/etc目錄下最近一周內(nèi)內(nèi)容修改過(guò)且不屬于root及student用戶(hù)的文件

        Linux文件查找

    4,查找當(dāng)前系統(tǒng)上沒(méi)有屬主或?qū)俳M且最近一天內(nèi)曾被訪問(wèn)過(guò)的文件,并將其屬主屬組均修改為root

      Linux文件查找

    5,查找/etc目錄下大于1M的文件,并將其文件名寫(xiě)入/tmp/etc/largefiles

        Linux文件查找

    xargs方法:

      Linux文件查找

    6,查找/etc目錄下所有用戶(hù)都沒(méi)有寫(xiě)權(quán)限的文件,顯示出其詳細(xì)信息

          Linux文件查找



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI