2021-05-12 14:32:11
Linux檔案搜尋命令 find
今天繼續分享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檔案搜尋命令就總結到這裡,自己動手寫了一遍,如有問題,歡迎指正,謝謝。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-11/137267.htm
相關文章