linux-文件搜索命令

  1. locate
    命令格式:locate 文件名
    /var/lib/mlocate locate命令所搜索的後臺數據庫
    locate搜索的是mlocate數據庫,但它是每天定時更新的,如果你新建的文件用locate搜索是搜索不到的,因爲還沒有更新進mlocate數據庫,所以需要強制更新數據庫,才能找到新建文件 updatedb
    優點:locate搜索消耗的資源少,搜索速度快,一般這個命令用的最多。
    缺點:只能搜索文件名
    注意:如果你在/tmp/等相關目錄下的文件搜索不到,請查看配置locate搜索的配置文件/etc/updatedb.conf

  2. 搜索命令的命令 whereis which
    作用:搜索命令的所在位置
    區別:whereis可以看到命令的幫助文檔,which可以看到命令的別名。
    注意:不必寫絕對路徑的命令是因爲系統會在PATH路徑下的對應目錄下尋找,如果是自定義的命令,並且相關目錄沒有加入到PATH下,那麼直接寫相對路徑會提示找不到該命令,查看PATH下的已有的相關目錄echo $PATH

  3. find
    命令格式:find [範圍] [條件]
    例子:
    find /root -iname 文件名 搜索文件名不區分大小寫
    find /root -nouser 沒有所有者的文件 即爲垃圾文件,所以需要清理,但是有特殊情況。
    find /root -user root 既搜索root目錄下所有者是root的文件
    find /root -inum 222288
    find /root -size +25k 搜索在root下大於25k的文件(小於用-)
    find /etc/ -ctime -10 搜索etc下10天內創建的文件
    優點:find功能十分強大,可以以-name文件名查找 -size 文件大小查找 -user 所屬人查找 -inum節點查找 -[acm]time [訪問|創建|修改]時間查找等。可以在上面的基礎上加 -a(與), -o(或) 來更精確的查找。
    缺點:find耗費資源,查詢會比較慢。
    注意:find是精確查找,如果要搜索更多要使用通配符,*任意多個字符?任意一個字符 【】表示任意一個括號內的字符。你可以將查詢出來的語句進行操作,-exec 參數後面跟的是command命令,它的終止是以;爲結束標誌的,所以這句命令後面的分號是不可缺少的,考慮到各個系統中分號會有不同的意義,所以前面加反斜槓。{} 花括號代表前面find查找出來的文件名。例如:find /etc/ -ctime -10 -exec ls -lh {} \; 將搜索出來的文件以長格式人性化的方式展現出來。

  4. 搜索文件中搜索符合條件的字符串的行 grep
    命令格式:grep [字符串(可用正則)] [文件名]
    例子:grep “size” anaconda-ks.cfg 文件內包含size的行
    findgrep的區別:find是查找文件,完全匹配,用通配符查找更多。grep是查找文件中的字符串,本身是不完全匹配,可用正則查找更廣。

發佈了57 篇原創文章 · 獲贊 6 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章