Linux的文件搜索命令(locate ,find,grep,find命令和)

剛開始學Linux,這是關於Linux文件搜索命令,就目前,盡我所能把他寫全一點,後期隨時補充linux

文件搜索命令正則表達式

1、locate命令數據庫

2、find命令spa

3、grep命令字符串

4、find命令和grep命令的區別date

 

一、locate命令搜索

語法: locate 文件名語法

例:locate user(搜索user的文件名)grep

優勢:搜索速度快im

缺點:只能搜索指定文件名,比方搜索user 文件的時候只會搜索到user,搜索不到users

注意:locate並非在數據庫裏面搜索的,而是在/var/lib/mlocate裏面進行搜索的,可是mlocate不是實時更新的,是一天更新一次,因此當你新建一個文件夾,locate命令是搜不到的,這個時候就須要用一個更新數據庫的命令

更新命令:updatedb (強制更新)

 

二、find命令

語法:find [搜索範圍]  [搜索條件]

例   :find /root -name User(在root目錄下搜索文件名爲User文件)

注意:find命令查詢出來的文件一樣只能和搜索出來的文件名要如出一轍,若是要進行模糊查詢,就要用到通配符

linux的通配符

 *   匹配任意內容

例:find /root -name *d (查詢root目錄下文件名以d結尾的文件名)

  匹配一個內容

例: find /root -name us?r (查詢root目錄下文件文件名是us什麼r的文件)

 []  匹配任意一箇中括號內的字符

例:find /root -name user[sd] (查詢root目錄下文件名是users和userd的文件)

 

補充:除此以外find還有其餘的命令

1.  -i 不區分大小寫

     find /root -iname User

2.  搜索有全部者的文件

          find /root -user root

3.  搜索沒有全部者的文件(若是有則是垃圾文件,可刪除)

          find /root -nouser root

4.  查詢指定時間內的文件

  -atime 文件詢問時間

  -ctime 改變文件屬性

  -mtime 修改文件內容

例: find /var/log -mtime +10 (查詢/var/log下10天前修改的文件)

+10   查詢10天前的文件

10     查詢10天當天的文件

-10    查詢10天內修改的文件

5.  查找指定大小的文件

     find -size 25k

     find -size 20M

注意:  k爲小寫、M爲大寫(必定要這麼寫,否則會報錯)

6.  查找文件名和 i 節點

    find /home -inum 262242 (查找/home目錄下i節點爲262242的文件名)

7.  而且、或者

    -a   and 而且    ,兩個文件都知足

    -o   or 或者  ,兩個條件有一個知足便可

例: find /home -size +20k -a -size -50k  (查詢在home目錄下文件在大於20k而且小於50k的文件)

8.  -exec 命令 {} \     命令2處理命令1搜索出來的結果

   find /home -size +20k -a -size -50k  -exec rm {} \; (查詢在home目錄下文件在大於20k而且小於50k的文件以後刪掉他)

三、grep命令

語法: grep [選項] 字符串 文件名

    -i  忽略大小寫

    -v 排除指定字符串(取反)

例:grep "size" User (查找User文件裏面有size的字符串)

注意:指定字符串必定要用" "

四、find命令和grep命令的區別

find命令:在系統中搜索文件名,如需模糊查詢,則須要通配符(*,[],?   上文有講)

grep命令:在文件中搜索指定字符串,入去匹配,則要用正則表達式

相關文章
相關標籤/搜索