Linux的文件搜索命令總結

在Linux中對文件或者對文件夾的搜索是十分頻繁的操做,而搜索命令主要有四個:正則表達式

1: locate命令

(1)命令格式: locate 文件名數據庫

    例如:locate abc           表示:搜索文件名爲abc的文件spa

(2)注意事項: 首先這個命令是對整個磁盤中的文件進行搜索,可是locate命令執行效率比find命令執行效率高,由於該命令會在/var/lib/mlocate/mlocate.db這個數據庫中查找.可是該數據庫不是實時更新的,通常是一天已更新,若是想要查找剛剛建立的文件,咱們必須使用 sudo updatedb這個命令使該數據庫強制更新,而後才能查找到咱們剛剛建立的文件.資源

 

2: find命令

(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命令雖然十分強大,可是很是耗費時間,耗費系統資源.因此查詢文件時應該儘可能縮小範圍.

3:  whereis與which命令

(1)whereis命令格式: whereis 命令名稱

    例如: whereis ls              表示: 搜索ls命令的位置

    which命令格式: which 命令名稱

    例如: which ls               表示:搜索ls命令的位置

(2)注意事項: which命令除了能夠查詢命令的所在位置,並且能夠顯示出更名的別名;whereis命令除了能夠顯示命令的所在位置,並且能夠顯示文件的幫助文檔所在位置;而命令通常都存放在/bin,/sbin,/usr/bin或者/usr/sbin下.

4:grep命令

(1)命令格式: grep  [選項]  搜索字符  文件名稱

例如: grep "abc"  test             表示: 搜索文件test中包含abc字符的行.

選項包含一下兩種:

-i:  表示忽略大小寫.

-v:  表示不包含該字符的行.

(2)注意事項: grep命令用來搜索文件內容的,若是須要模糊查詢,應該使用正則表達式.

相關文章
相關標籤/搜索