在Linux中對文件或者對文件夾的搜索是十分頻繁的操做,而搜索命令主要有四個:正則表達式
(1)命令格式: locate 文件名數據庫
例如:locate abc 表示:搜索文件名爲abc的文件spa
(2)注意事項: 首先這個命令是對整個磁盤中的文件進行搜索,可是locate命令執行效率比find命令執行效率高,由於該命令會在/var/lib/mlocate/mlocate.db這個數據庫中查找.可是該數據庫不是實時更新的,通常是一天已更新,若是想要查找剛剛建立的文件,咱們必須使用 sudo updatedb這個命令使該數據庫強制更新,而後才能查找到咱們剛剛建立的文件.資源
(1)命令格式: find 查找範圍 查找條件類型 文件名稱文檔
例1:test
find / -name abc 表示:根目錄下按照文件名稱查詢,查詢abc文件.
若是須要模糊查詢,那麼須要使用通配符.
通配符一般有三種:
* :表示任意內容
[] :表示括號內的任意字符
? :表示任意字符
注意:使用通配符的時候最好使用雙引號括起來,防止系統不識別通配符
如: find / -name "ab[cd]" 表示: 搜索根目錄下名爲abc或者abd的文件.效率
例2:date
find /var/log/ -mtime -10 表示: var目錄下的log目錄下的文件在十天內修改過的文件.搜索
+10 :表示十天前修改過得文件.
-10 :表示十天內修改過的文件.
10 :表示十天當天修改過的文件.grep
atime :文件訪問時間
ctime :文件屬性改變的時間
mtime :文件內容修改過的時間
例3:
find /home/yhh/ -user yhh 表示:home目錄下的yhh目錄裏屬於yhh這個用戶的文件.
find /home/yhh/ -nouser 表示:home目錄下的yhh目錄裏的沒有全部者的文件,通常只有u盤這樣
的外來文件和sys目錄下內核直接生成的文件沒有全部者,其餘文件都有全部者.
例4:
find . -size +100k 表示:搜索當前目錄下文件大小超過100kb的文件或者目錄.
find . -inum 284345 表示:搜索當前目錄下文件i節點數爲284345的文件.
find . -size +100k -a -size -200k 表示:大於100k小於200k的文件.
-a :與的關係
-o :或的關係
例5:
find . -size +50k -exec ls -l {} \; 表示:查找到的文件按照長格式顯示
(2)注意事項: find命令雖然十分強大,可是很是耗費時間,耗費系統資源.因此查詢文件時應該儘可能縮小範圍.
(1)whereis命令格式: whereis 命令名稱
例如: whereis ls 表示: 搜索ls命令的位置
which命令格式: which 命令名稱
例如: which ls 表示:搜索ls命令的位置
(2)注意事項: which命令除了能夠查詢命令的所在位置,並且能夠顯示出更名的別名;whereis命令除了能夠顯示命令的所在位置,並且能夠顯示文件的幫助文檔所在位置;而命令通常都存放在/bin,/sbin,/usr/bin或者/usr/sbin下.
(1)命令格式: grep [選項] 搜索字符 文件名稱
例如: grep "abc" test 表示: 搜索文件test中包含abc字符的行.
選項包含一下兩種:
-i: 表示忽略大小寫.
-v: 表示不包含該字符的行.
(2)注意事項: grep命令用來搜索文件內容的,若是須要模糊查詢,應該使用正則表達式.