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


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

文件搜索命令

一、locate命令

二、find命令

三、grep命令

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

 

1、locate命令

語法: locate 文件名

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

優點:搜索速度快

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

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

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

 

2、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的文件之后刪掉他)

3、grep命令

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

    -i  忽略大小寫

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

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

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

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

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM