文件查找:locate/find

文件查找就是在文件系統上查找符合條件的文件,工具名分別為:locate和find

locate是非實時查找或數據庫查找的工具;而find則是實時查找工具。

locate

locate依賴于事先構建的索引。索引的構建是在系統較為空閑時自動進行(即為周期性任務),也可以手動更新數據庫(updatedb)

注意:索引構建過程需要遍歷整個根文件系統,極其消耗資源。

它的工作特點有:查找速度快,模糊查找和非實時查找

語法:

    locate KEYWORD

find

find是實時查找工具,通過遍歷指定路徑下的文件系統完成文件查找。


它的工作特點有:查找速度略慢,精確查找和實時查找

語法:

    find [OPTION]… [查找路徑] [查找條件] [處理動作]

        查找路徑:指定具體目標路徑,默認為當前目錄。

        查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行,默認為找出指定路徑下的所有文件。

        處理動作:對符合條件的文件做什么操作,默認輸出至屏幕。

    查找條件是根據文件名查找

        -name "文件名稱" (支持使用glob)

        -iname "文件名稱" :不區分字符大小寫

        -regex "PATTERN":以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱

    根據屬主、屬組查找

        -user USERNAME:查找屬主為指定用戶的文件

        -group GRPNAME:查找屬組為指定組的文件

        -id UserID:查找屬主為指定的UID號的文件

        -gid GroupID:查找屬組為指定的GID號的文件

        -nouser:查找沒有屬主文件

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

    根據文件類型查找

        -type TYPE

        組合條件如下

            與:-a

            或:-o

            非:-not,!

        示例:找出/tmp目錄下,屬組不是root,且文件名不是fstab的文件。

            find /tmp -not \( -user root -o -name 'fstab' \) -ls

    根據文件大小來查找

        -size [+|-]#UNIT

        常用的單位有:k,m,g

            #UNIT:(#-1,#)

            -#UNIT:[0,#-1]

            +#UNIT:(#,無限大)

    根據時間戳

        以 天 為單位        

            -atime [+|-]#

            -mtime

            -ctime

        以分鐘為單位

            -amin

            -mmin

            -cmin

    根據權限查找

            -perm [+|-]MODE

                MODE:精確權限匹配

            +MODE:任何一類(u,g,o)對象的權限中只要能一位匹配即可

            -MODE:每一類對象都必須同時擁有為其指定的權限標準

    處理動作

        -print:默認的處理動作,顯示至屏幕

        -ls:類似于對查找到的文件執行 "ls -l" 命令

        -delete:刪除查找到的文件

        -fls /path/to/somefile:查找到的所有文件的長格式信息

        -ok COMMAND {}\:對查找到的每個文件執行由COMMAND指定的命令

            對于每個文件執行命令之前,都會交互式要求用戶確認

        -exec COMMAND {}\:對查找到的每個文件執行由COMMAND指定的命令

    注意:find傳遞查找到的文件至后面指定的命令時,查找到的所有符合條件的文件一次性傳遞給后面的命令。有些命令不能夠接受過多參數,此時命令執行可能會失敗。

        find | xagrs COMMAND  這種方式可規避此問題

原創文章,作者:黑白子,如若轉載,請注明出處:http://www.www58058.com/12687

(0)
黑白子黑白子
上一篇 2016-03-12
下一篇 2016-03-13

相關推薦

  • Linux下計劃任務神器-Crontab

    作為系統運維人員都清楚,在Linux下定義重復性的任務,我們一般會采用crontab來進行:crontab這個指令所設置的工作將會循環的一直進行下去!可循環的時間為分鐘、小時、每日、每月、每周。 crontab計劃任務: 1)常見用法:crontab命令的作用和用法如下:描述:為每個用戶維護周期性的計劃任務文件用法:crontab [-u 用戶][-l|-r…

    Linux干貨 2016-07-22
  • 啟動和內核管理

    一、Linux組成     Linux: kernel+rootfs         kernel: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能       &nb…

    Linux干貨 2016-09-18
  • N24_輝 學習宣言

    我志愿加入馬幫的大家庭。 在此,我堅信有志者事竟成,同時,機會總是留給有準備的人的。 既來之,則安之。我的目標是能在規定的時間內結業,正如馬哥所說:完成比完美更重要! 無論如何,也要完成!fighting?。?!

    Linux干貨 2016-10-24
  • 初學Linux之用戶、組和權限

    1、用戶和組管理命令 ?
    2、理解文件權限和默認權限 ?
    3、設置文件權限
    4、特殊權限 ?
    5、ACL

    2017-12-08
  • grep與文本處理工具

    grep:基本正則表達式,-E  -F egrep:擴展正則表達式,-G -F fgrep: 不支持正則表達式,-F  egrep:          支持擴展的正則表達式實現類似于grep文本過濾功能; grep -E          …

    Linux干貨 2016-12-23
  • N22-第六周作業

    請詳細總結vim編輯器的使用并完成以下練習題      vim是模式化的文本編輯器。在不同模式下,每一次按鍵的效果都不一樣。vim有三種工作模式,分別是編輯模式,插入模式和末行模式。編輯模式是打開vim后的默認模式,用于查看文本或進行復制,粘貼,刪除等編輯命令。插入模式是為了向文本中輸入信息。末行模式是vim自帶的命令行接口,能…

    Linux干貨 2016-09-26
欧美性久久久久