精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > Linux中如何運(yùn)用find命令

      Linux中如何運(yùn)用find命令

      時(shí)間: 孫勝652 分享

      Linux中如何運(yùn)用find命令

        我們都知道Linux下查找文件的命令是find命令,運(yùn)用該命令可以很快的搜到自己想要的文件,那么find命令有哪些使用技巧呢?下面小編就給大家介紹下Linux中find命令的巧妙運(yùn)用。

        find命令的工作方式是沿著文件層次結(jié)構(gòu)向下遍歷,匹配符合條件的文件,并執(zhí)行相應(yīng)的操作。

        1、根據(jù)文件名或正則表達(dá)式匹配搜索

        選項(xiàng)-name的參數(shù)指定了文件名所必須匹配的字符串,我們可以將通配符作為參數(shù)使用,“*.txt”匹配所有以.txt結(jié)尾的文件名。

        代碼如下:

        [root@localhost test]# touch {data,log,file,F(xiàn)ile,LOG}_{1,2,3,4,5,6}_{.txt,.pdf,.log,.conf}

        [root@localhost test]# find 。 -name “*.txt” –print

        如果想匹配多個(gè)條件中的一個(gè),可以使用-o參數(shù)。

        代碼如下:

        [root@localhost test]# find 。 \( -name “*.txt” -o -name “*.log” \)

        選項(xiàng)-iname忽略字母大小寫(xiě)

        選項(xiàng)-path的參數(shù)可以使用通配符來(lái)匹配文件路徑或文件。

        2、否定參數(shù)

        find 用 “!”來(lái)否定參數(shù),匹配所有不以.txt結(jié)尾的文件名。

        代碼如下:

        [root@localhost test]# find 。 ! -name “*.txt” –print

        3、基于目錄深度的搜索

        find命令在使用時(shí)會(huì)遍歷所有的子目錄,我們可以采用-maxdepth和-mindepth來(lái)限制find命令遍歷的深度。

        -maxdepth: 指定最大深度;

        -mindepth:指定最小深度。

        代碼如下:

        [root@localhost ~]# find 。 -maxdepth 1 -type f

        列出當(dāng)前目錄的所有普通文件,這兩個(gè)命令要緊跟在目標(biāo)路徑之后。

        4、根據(jù)文件類型搜索

        代碼如下:

        find 。 –type d –print

        5、根據(jù)文件時(shí)間進(jìn)行搜索

        Linux文件系統(tǒng)中每一個(gè)文件都有三種時(shí)間戳

        訪問(wèn)時(shí)間(-atime):用戶最近一次訪問(wèn)文件的時(shí)間;

        修改時(shí)間(-mtime):文件內(nèi)容最后一次被修改的時(shí)間。

        變化時(shí)間(-ctime):文件元數(shù)據(jù)(metadata,例如權(quán)限或所有權(quán))最后一次改變的時(shí)間。

        -atime,-mtime,-ctime作為時(shí)間參數(shù),單位是天,可以使用+表示大于,-表示小于。

        代碼如下:

        [root@localhost ~]# find 。 -type f -atime 7

        #打印出正好在7天前被訪問(wèn)過(guò)的文件

        [root@localhost ~]# find 。 -type f -mtime +7

        #打印修改時(shí)間大于7天的文件

        [root@localhost ~]# find 。 -type f -ctime -7

        #打印出修改時(shí)間小于7天的文件

        類似的參數(shù)還有,-amin(訪問(wèn)時(shí)間),-mmin(修改時(shí)間),-cmin(變化時(shí)間),以分鐘為單位。

        find另一個(gè)漂亮的特性是-newer參數(shù),我們可以指定一個(gè)用于比較時(shí)間戳的參數(shù)文件,然后找出比參數(shù)文件更新的所有文件。

        find 。 –type f –newer file.txt

        p 在當(dāng)前目錄找出比f(wàn)ile.txt修改時(shí)間更長(zhǎng)的所有文件。

        6、基于文件大小的搜索

        搜索可以使用的單位

        b——塊(512字節(jié)); c——字節(jié); w——字(2字節(jié));

        k——千字節(jié) ; M——兆字節(jié); G——吉字節(jié)。

        代碼如下:

        [root@localhost tmp]# find 。 -type f -size 2k

        #等于2k的文件

        [root@localhost tmp]# find 。 -type f -size +2k

        #大于2k的文件

        [root@localhost tmp]# find 。 -type f -size -2k

        #小于2k的文件

        7、刪除匹配的文件

        -delete可以用來(lái)刪除find查找到的匹配文件。

        代碼如下:

        [root@localhost tmp]# find 。 -type f -name “.sWp” –delete

        #刪除當(dāng)前目錄下所有的.swp文件

        8、基于文件權(quán)限和所有權(quán)的匹配

        代碼如下:

        [root@localhost tmp]# find 。 -type f -perm 644

        #查找當(dāng)前目錄權(quán)限為644的文件

        [root@localhost tmp]# find 。 -type f -user reed

        #查找當(dāng)前目錄文件所有者為reed的文件

        9、結(jié)合find 執(zhí)行命令或動(dòng)作

        find命令可以借助選項(xiàng)-exec與其他命令進(jìn)行結(jié)合。

        代碼如下:

        [root@localhost tmp]# find 。 -type f -user reed -exec chown cathy {} \;

        #將當(dāng)前目錄文件擁有者為reed的文件改為cathy

        { }是一個(gè)特殊的字符串,對(duì)于每一個(gè)匹配的文件,{ }會(huì)被替換成相應(yīng)的文件名。

        代碼如下:

        [root@localhost test]# find 。 -type f -mtime +10 -name “*.log” -exec cp {} /data/bk_log \;

        #將當(dāng)前目錄大于10天的log文件復(fù)制到/data/bk_log目錄

        [root@localhost test]# find /tmp/test/ -type f -name “*.txt” -exec printf “Text file: %s\n” {} \;

        Text file: /tmp/test/File_6_.txt

        Text file: /tmp/test/file_4_.txt

        Text file: /tmp/test/data_3_.txt

        Text file: /tmp/test/data_1_.txt

        #列出目錄的所有txt文件

        10、跳過(guò)指定的目錄

        有時(shí)間我們查找時(shí)需要跳過(guò)一些子目錄

        代碼如下:

        [root@localhost test]# find 。 \( -name “jump_dir” -prune \) -o \( -type f -print \)

        # \( -name “jump_dir” -prune \) 指定要跳過(guò)的子目錄的名字

        上面就是Linux中巧妙運(yùn)用find命令的方法介紹了,只要合理運(yùn)用find命令,就能達(dá)到意想不到的效果,在使用Linux命令時(shí),我們不僅要會(huì)用,還有學(xué)會(huì)怎么用,你記住了嗎?

      312221