国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > 如何快速學(xué)習(xí)find命令

    如何快速學(xué)習(xí)find命令

    時(shí)間: 春健736 分享

    如何快速學(xué)習(xí)find命令

      每一種操作系統(tǒng)都有成千上萬(wàn)的文件組成,對(duì)于linux這樣“一切皆文件”的操作系統(tǒng)來(lái)說(shuō)更不例外,大家應(yīng)該都能很輕松使用windows下的文件查找功能,下面跟著學(xué)習(xí)啦小編一起來(lái)了解一下如何快速學(xué)習(xí)find命令吧。

      如何快速學(xué)習(xí)find命令

      讓我們先從一個(gè)簡(jiǎn)單例子開(kāi)始。

      $ find / -name test

      。/backup/ modules/field/modules/test

      $

      “查找根目錄下名稱(chēng)為’test’的文件”, 這條命令會(huì)讓系統(tǒng)查找所有文件, 包括掛載的文件設(shè)備。 這可能需要花費(fèi)一段時(shí)間, 尤其是查找網(wǎng)絡(luò)共享硬盤(pán)。 不過(guò), 我們可以通過(guò)參數(shù)-mount告訴, 系統(tǒng)忽略掛載設(shè)備:

      $ find / -mount -name test

      find命令格式如下:

      find [path] [options] [tests] [actions]

      [path]

      路徑; 應(yīng)該不難理解。 這里可以使用絕對(duì)路徑, 也快成使用相對(duì)路徑。

      [options]

      參數(shù); 比較常用的參數(shù)用:

      -depth: 先查找子目錄再查看當(dāng)前目錄 -follow: 跟蹤查找連接文件 -maxdepths N: 子目錄遞歸最大深度 -mount(or -xdev): 忽略掛載文件

      [tests]

      條件匹配;

      -atime -N/N/+N: 最后一次訪問(wèn)文件的時(shí)間在 N天內(nèi)/N天/N天前 -mtime -N/N/+N: 最后一次修改文件的時(shí)間在 N天內(nèi)/N天/N天前 -name pattern: 與pattern相匹配的文件(包括目錄) -newer f1 !f2: 比文件f1新的文件, 比文件f2舊的文件 -type b/d/c/p/l/f: 文件類(lèi)型為: 塊設(shè)備/目錄/字符設(shè)備/管道/鏈接/文件 -user username: 文件的所有者是username

      我們可以通過(guò)以下操作符, 將匹配條件 連起來(lái):

      -not (!): 方向匹配 -and (-a): 而且 -or (-o): 或者

      我們還可以通過(guò)括號(hào)將一些匹配符號(hào)合并。 例如

      \(-newer -o -name ‘*test’ \)

      現(xiàn)在舉一個(gè)稍微有點(diǎn)復(fù)雜的例子, 查找當(dāng)天被訪問(wèn)過(guò)或修改過(guò)的文件, 文件名包含’python’, 而起文件所有者是’anthony’:

      # find / \( -atime -1 -or -mtime -1 \) -and -name ‘*python*’ -and -user ‘anthony’

      /home/anthony/svn_code/subversion-1.7.2/subversion/bindings/swig/python

      /home/anthony/svn_code/subversion-1.7.2/subversion/bindings/ctypes-python

      /home/anthony/python

      /home/anthony/python/Python-3.2.2/build/temp.linux-x86_64-3.2/home/anthony/python

      /home/anthony/python/Python-3.2.2/Tools/unicode/python-mappings

      /home/anthony/.local/lib/python3.2

      #

      [actions]

      操作;

      -exec command: 執(zhí)行命令, 具體介紹見(jiàn)后文。 -ok command: 和-exec一樣, 除了命令執(zhí)行需要用戶許可。 -print: 打印文件名 -ls: 列出文件詳細(xì)信息

      現(xiàn)在舉例說(shuō)明-exec command

      anthony@z:~$ find -mtime -1 -type f -exec ls -l {} \;

      -rw-r--r-- 1 anthony anthony 0 Apr 5 12:04 。/search/search.txt

      -rw------- 1 anthony anthony 22997 Apr 5 12:04 。/.viminfo

      -rw------- 1 anthony anthony 125 Apr 5 14:25 。/.lesshst

      anthony@z:~$

      簡(jiǎn)單地說(shuō), -exec或-ok, 將查詢到的文件作為參數(shù)傳遞給后面的命令執(zhí)行, 而參數(shù)的位置用{}標(biāo)識(shí), 即命令中, “{}”替換成find查找出來(lái)的文件名, 最后”\;”表示結(jié)束符。

      find . -type f -exec ls -l {} \;

      從當(dāng)前文件夾中查找普通文件,并且對(duì)每個(gè)匹配的文件執(zhí)行“ls -l {}”操作;

      -type表示按照文件類(lèi)型來(lái)查找文件:

      b - 塊設(shè)備文件。

      d - 目錄。

      c - 字符設(shè)備文件。

      p - 管道文件。

      l - 符號(hào)鏈接文件。

      f - 普通文件。

      find logs -type f -mtime +5 -exec rm {} \;

      從logs文件夾中查找最后修改日期在5天前的文件,并且刪除它們;

      -mtime:Modify Time

      -atime: Access Time

      -ctime: Create Time

      find /etc -name "passwd*" -exec grep "sam" {} \;

      從/etc文件夾中查找文件名以“passwd”開(kāi)頭的所有文件中,是否有“sam”字符串;

      -name 后面的表達(dá)式不是正則表達(dá)式,而是通配符,“*.txt”,"*[lL]inux*"等等。

      主要選項(xiàng):

      -name:按照文件名查找文件。

      -perm:按照文件權(quán)限來(lái)查找文件。

      -prune:使用這一選項(xiàng)可以使f i n d命令不在當(dāng)前指定的目錄中查找,如果同時(shí)使用-depth選項(xiàng),那么-prune將被f i n d命令忽略。

      -user: 按照文件屬主來(lái)查找文件。

      -group:按照文件所屬的組來(lái)查找文件。

      -mtime -n +n:按照文件的更改時(shí)間來(lái)查找文件, - n表示文件更改時(shí)間距現(xiàn)在n天以內(nèi),+ n表示文件更改時(shí)間距現(xiàn)在n天以前。F i n d命令還有- a t i m e和- c t i m e選項(xiàng),但它們都和- m t i m e選項(xiàng)。

      -nogroup:查找無(wú)有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s中不存在。

      -nouser:查找無(wú)有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d中不存在。

      -newer file1 ! file2:查找更改時(shí)間比文件f i l e 1新但比文件f i l e 2舊的文件。

      -type 查找某一類(lèi)型的文件

      -size 按文件大小查找,+100c,表示大于100字節(jié),-10,表示小于10塊(1塊為512字節(jié))

      上面就是Linux find命令的介紹了,從例子中學(xué)習(xí)find命令效果會(huì)比看理論知識(shí)會(huì)好的多,對(duì)于初學(xué)者來(lái)說(shuō),多看例子多動(dòng)手是很有必要的。

    648738