剛開始學Linux,這是關於Linux文件搜索命令,就目前,盡我所能把他寫全一點,後期隨時補充linux
文件搜索命令正則表達式
1、locate命令數據庫
2、find命令spa
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命令:在文件中搜索指定字符串,入去匹配,則要用正則表達式