一、 locate:按照文件名搜索文件node
locate filename
與find在整個操做系統中遍歷搜索不一樣,locate命令在/var/lib/mlocate這個後臺數據庫中按照文件名搜索,因此優勢是搜索速度很快。shell
然而因爲數據庫是一天更新一次,因此新建的文件極可能搜索不到,爲了不這個問題,能夠強制更新數據庫:updatedb數據庫
Locate的缺點是只能用文件名搜索,並且因爲Locate的搜索是根據/etc/updatedb.conf文件中的規則進行搜索的,因此可能會存在某些文件或者某些文件夾或者符合某些規則的文件不會被搜索到的狀況,具體參考前述文件中規定的規則(whereis和which也遵照這個規則)。spa
二、 whereis和which:搜索命令的命令操作系統
whereis [options] name
whereis只能搜索系統命令,不能搜索咱們自主建立的文件,好比搜索 ls,touch等系統命令所在位置blog
–b 只查找可執行文件資源
-m 只查找幫助文件字符串
有的命令是找不到命令所在位置的,好比cd,這是shell命令,用whereis和which是找不到的。io
Which除了能找到命令所在位置外,還能查到命令的別名,可是不是每一個命令都有別名,因此有的就只能看到命令所在位置class
三、 find:很是強大,參數多
find [搜索範圍] [搜索條件]
e.g: find / -name filename 搜索範圍爲根目錄,按照name搜索文件filename
find搜索應該避免大範圍搜索浪費資源,並且find是全匹配搜索,只有文件名徹底同樣纔會被搜到,若是想搜索帶有關鍵字的,那須要通配符。Linux中的通配符有* ? []
經常使用搜索條件有:
-name 按照名字搜索
-iname 不區分大小寫
-user 按照全部者搜索(後接全部者名稱)
-nouser 搜索沒有全部者的,通常而言沒有全部者的文件是垃圾文件能夠刪除,可是除了
a .sys文件夾和proc文件夾中的無用戶文件,這兩個文件中的無用戶文件是內核直接產生的
b.外來文件,好比U盤移動硬盤等的文件
-mtime,atime,ctime
find /root –mtime +10
-10: 10天內修改文件
10:10天當天修改文件
+10:10天前修改的文件
atime:文件訪問時間
ctime:改變文件屬性
mtime:修改文件內容
-size 按照文件大小搜索
Find / -size +25k,千字節必須是小寫k,兆字節必須大寫M,不帶單位則單位爲扇區數
-25k 小於25k
25k 等於25k
+25k 大於25k
-inum 按照inode搜索
組合搜索:
-a 邏輯與 find /etc –size +20k –a –size -30k
-o 邏輯或 用法與-a相同
-exec 接在find搜索命令以後表示find的結果送給exec後面的命令執行。好比:
Find /root –size 20k -exec rm –rf {}\; 在root中找到大小爲20k的文件並刪除
此時第二個命令後面必需要有{}\;
四、 grep:搜索字符串命令,在指定文件中搜索指定字符串
grep 「size」 filename在filename中查找包含「size」的語句
grep –v 「size」 filename 取反,不包含「size」的語句