linux基礎--文件查找

locate

  非實時,模糊查找,查找根據全系統文件數據庫進行。

  updatedb:手動生成文件數據庫

  優點:速度快


find

  實時查找,精確查找。

語法:

  find [查找路徑] [查找標準] [處理動作]

  查找路徑:默認爲當前目錄

  查找標準:默認爲指定路徑下所有文件

  處理動作:默認爲顯示

選項[查找標準]:

  -name 'FILENAME':對文件名做精確匹配

    文件名通配*、?、[]

  -iname 'FILENAME':對文件名匹配不區分大小寫

  -regex PATTERN:基於正則表達式查找

根據文件屬性查找

  -user USERNAME:根據屬主查找

  -group GROUPNAME:根據屬組查找

  -uid UID:根據UID查找

  -gid GID:根據GID查找

  -nouser:查找沒有屬主的文件

  -nogroup:查找沒有屬組的文件

根據文件類型查找

  -type:根據文件類型查找

    f:普通文件

    d:目錄

    s:套接字文件

    c:字符設備

    b:塊設備

    l:鏈接文件

    p:管道設備

根據文件大小查找

  -size:根據文件大小查找

    [+|-]#k:查找大於#k或者小於#k的文件

根據邏輯與或非查找

  -a:表示and,同時滿足,默認就爲與操作

  -o:表示or,滿足一個顯示

  -not:表示不滿足的顯示

根據時間查找

  -mtime +#:查找修改時間大於#天的文件

      -#:查找修改時間小於#天的文件

  -atime +#:查找訪問時間大於#天的文件

  -ctime +#:查找狀態改變時間大於#天的文件

  -mmin +#:找修改時間大於#天分鐘的文件

根據權限查找

  -perm MODE:根據權限查找文件,使用MODE表示精確查找

  -perm -mode:表示每一位權限都必須精確匹配

  -perm /mode:表示9位權限中有任何一位匹配都匹配查找


find動作:

  -print:默認值,顯示

  -ls:類似ls -l的形式顯示匹配後每一個文件的詳細信息

  -ok COMMAND {} \; 匹配後執行命令。注:此處必須使用;爲結束符,否則爲語法錯誤,{}爲文件名稱佔位符

  -exec COMMAND {} \; 匹配後執行命令。注:此處必須使用;爲結束符,否則爲語法錯誤,{}爲文件名稱佔位符

例:find ./ -type f -exec chmod o-w {} \;  

  查找當前目錄下類型爲文件的文件,並刪除其他用戶的寫權限。

  find ./ -mtime +7 -exec rm -rf {} \;

  查找當前修改目錄下時間大於7天的文件,並刪除


擴展命令

xargs:從標準輸入接受命令並執行

  使用管道接受,不需要使用{}佔位符,也無需\;結尾

例子:

 find /etc -size +1M -exec echo {} >> /tmp/etc.bak \;

 find /etc -size +1M |xargs echo >> /tmp/etc.bak

 上述兩種命令都可以實現查找/etc下大於1M的文件並寫入指定文件中


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章