歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux文件搜索命令 find

Linux文件搜索命令 find

日期:2017/2/28 13:47:00   编辑:Linux教程

今天繼續分享linux常用命令,搜索相關命令,首先來看第一個命令
一 find :搜索文件或目錄
語法: find [搜索范圍] [匹配條件]
1 find /etc -name init 在etc目錄下搜索名字為init的文件或目錄,如下:

我們看到了相應的搜索結果,但是這只是搜索確定名字的文件或目錄,如果我想搜索文件名中包含init的怎麼辦呢,很簡單,用*號即可

*號代表任意字符,?代表單給字符,比如我們想搜索init後面跟著四個字符的文件或目錄

這裡可以看到結果了,我們知道linux是嚴格區分大小寫的,那麼如果我想搜索INIT的文件,需要用-iname,-iname表示不區分大小寫,比如我先創建一個INIT的文件,然後搜索它

我們看到成功搜索到了。

2 find / -size +204800 在根目錄下搜索大於100M的文件,+n代表大於,-n代表小於,=n代表等於
n的一位代表512個字節,也就是0.5k,100M就是102400k,換算成n就是204800了,如下:

我們看搜索到了大於100M的文件

3 find /home -user fuqiang1 搜索home目錄下所有者為fuqiang1的文件或目錄

find /home -group fuqiang1 搜索home目錄下所屬組為fuqiang1的文件或目錄

4 find /etc -cmin -5 查找etc目錄下5分鐘之內被修改過屬性的文件和目錄
-amin 代表訪問時間 -cmin代表文件屬性 -mmin代表文件內容

5 -type 根據文件類型查找,f代表普通文件,d代表目錄,l代表軟連接文件

6 -inum 根據i節點查找

7 find /etc -size +163840 -a -size -204800
在etc下查找大於80M,小於100M的文件
-a代表兩者同時滿足
-o代表兩個滿足一個即可

8 find . -name fuqiang.list -exec ls -l {} \;
搜索當前目錄下文件名為fuqiang.list的文件,然後直接ls -l命令列出詳細信息

-exec/-ok 對執行結果進行操作,-exec直接操作,-ok會先詢問
好了,find命令常用方法就介紹到這裡,下面看第二個命令

二 locate:在文件資料庫中查找文件
用法:locate inittab

那麼這個locate跟find有什麼不同呢,locate是在文件資料庫中查找,也就是不是真正在磁盤上查找,這樣速度會快很多,那麼這個文件資料庫在哪裡呢,我們執行locate locate看一下

這裡我們看到一個mlocate.db的文件,這個就是文件資料庫,linux系統會定期把文件的資料同步到這裡,下面看一個問題,比如我新建一個文件,然後locate這個文件,分兩種情況,我先在tmp下建一個文件

我們發現在tmp路徑下的文件查不到,這是因為這個路徑下的文件不會被放到文件資料庫中,那麼我在其他目錄下建一個文件

怎麼依然locate不到呢,是因為新建的文件並不會立刻被同步到文件資料庫中,那麼我們執行updatedb,新建的文件就會同步進去了

我們看到搜索結果了,如果不區分大小寫呢,用-i

好了,locate命令就介紹到這裡,看下一個命令

三 which:搜索命令所在路徑及別名信息
which 命令

我這裡沒有看到別名信息,不知道是不是我linux發型版的問題

四 whereis:搜索命令所在路徑及幫助文檔
whereis 命令

前面是命令所在路徑,後面是幫助文檔

五 grep:在文件中搜尋字符匹配的行並輸出
-i不區分大小寫,-v排除指定字串
grep -i if rc.local 查找rc.local文件中包含if的行,如下

grep -v ^# rc.locat 排除rc.local文件中以#開頭的行,如下:

好了,常用的linux文件搜索命令就總結到這裡,自己動手寫了一遍,如有問題,歡迎指正,謝謝。

Copyright © Linux教程網 All Rights Reserved