小螞蟻學習Linux(5)——文件搜索命令find和grep(重要)

find 命令    find    【搜索範圍】 【搜索條件】php

例如:    find    /    -name    install.log    意思:在根目錄下查找文件名爲install.log的文件。windows

注意:服務器

    1. 在生產服務器上應避免這種大範圍的搜索,會很是耗費系統資源。spa

    2. find搜索的文件名必須是如出一轍的才能找到,要想進行模糊搜索,就要使用通配符,可以識別的通配符有三種,分別是:    *    ?    []    (這三個通配符的功能和做用貌似在各類語言中都是通用的,詳細介紹請參考博文:http://my.oschina.net/woshixiaomayi/blog/507939
.net

find命令的三個經常使用選項:blog

    -iname    不區分大小寫查找    如:    find    /root    -iname    install.log
ci

    -user      按照全部者搜索(不太經常使用)  如:    find    /root    -user    root    全部者是root的文件有哪些
資源

    -nouser    搜索沒有全部者的文件(這個很實用)    如:    find    /root    -nouser    解釋一下哈:通常來講,沒有全部者的文件就是垃圾文件,可是有兩個特殊狀況須要特別注意一下:
開發

    1.    由內核產生的無全部者文件,是很重要的,不能刪除,例如:根目錄下的proc,sys兩個目錄中的文件。
字符串

    2.    外來文件,如:U盤,光盤等從windows中拷貝而來的文件。window中不是沒有全部者這個概念,而是由於它忽略了這個概念。

find    按照文件修改時間查找

find    /var/log    -mtime    +10    查找10天前修改的文件

選項:    -atime    文件訪問時間

            -ctime    改變文件屬性的時間

            -mtime    修改文件內容的時間

時間段介紹:    -10  10天之內修改的文件

                      10    第10天當天修改的文件

                      +10    10天之前修改的文件

    過去的時間段知道怎麼表示了,那麼將來10天怎麼表示呢?你開玩笑的吧!知道將來的事,我就去買彩票了,誰還在這裏寫博客……

find    按照文件大小查找    find    .    -size    25k    查找當前目錄下文件大小等於25k的文件。

-25k    小於25k的文件

25k     等於25k的文件

+25k    大於25k的文件

注意:按照文件大小查找的時候有個要點,值得注意一下,否則會出錯:kb的時候必定要小寫,如25k;mb的時候必定要大寫,如:25M。唉,Linux的開發人員也是逗咱們玩……

經過i節點查找文件    find    /root    -inum    123456    其實,這個命令跟ls    -i    命令有些互補,前者能夠經過i節點查找文件名,後者是經過文件名查看i節點。

find    命令還可使用邏輯判斷

find    /etc    -size    +20k    -a    -size    -50k    

含義:查找/etc文件下大於20k而且小於50k的文件。邏輯與,兩個條件必須都要知足。

find    /etc    -size    +20k    -o    -size    -10k

含義:查找/etc文件下大於20k或者小於10k的文件。邏輯或,兩個條件知足其中一個便可。

下面說一個重要的知識點:

    find    /etc    -size    +20k    -a    -size    -50k    -exec ls -lh {}\

    含義: 查找/etc文件下大於20k而且小於50k的文件,而且把查詢到的文件,以長格式和人性化文件大小顯示出來。

    固定格式    -exec <命令>    {}\    這裏的命令,是對以前查詢出來的結果的操做。

    再例如:    find    /etc    -size    +20k    -a    -size    -50k    -exec rm -rf {}\    將查找出來的文件刪除,很方便吧,假如查找出來10000個文件,不會這個命令,就等着哭吧,可是有了這個命令就會so easy,老闆不再怕你刪不完文件。

grep命令

grep    【選項】    字符串    文件名        在文件當中匹配符合條件的字符串

選項:    -i    忽略大小寫    -v    排除指定字符串(至關於反選)

如:    grep    ‘hello world’    abc.php    在abc.php中查找包含了hello world的行並返回。

那麼總結一下,find和grep的區別:

    find命令:在系統當中搜索,符合條件的文件名。

    grep命令:在文件當中搜索,符合條件的字符串。


學PHP的小螞蟻  博客  http://my.oschina.net/woshixiaomayi/blog

相關文章
相關標籤/搜索