文件查找: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 23:12
下一篇 2016-03-13 01:55

相關推薦

  • CentOS7 Local yum的一次報錯信息

    說明:今天在火車上測試一個CentOS7下的一個服務,要用到yum配置,但是本機沒有聯網,所以考慮到配置本地yum,按照之前CentOS6下的常規方法,居然發現有報錯。 操作如下: 1)虛擬機下將CentOS7光盤加載到系統里面,然后掛載到本地的/localyum上 [root@localhost yum.repos.d]# mount&…

    Linux干貨 2016-07-16
  • grub文件文件修復

    首先我們先破壞一下grub文件 這里我們先查看一下電腦是哪塊硬盤啟動的 這里我們就直接破壞硬盤的二進制數據,以達到grub的破壞。 要記住我們只能破壞前446字節,也就是bootloader。后面64字節是分區表。 我們可以查看一下前512字節的二進制文件 hexdump -C -n 512 /dev/sda 先破壞/boot/grub/stage1的前44…

    2017-07-28
  • 正則表達式練習

    一: 1、找出ifconfig命令結果中本機的所有IPv4地址         2、查出分區空間使用率的最大百分比值 3、查出用戶UID最大值的用戶名、UID及shell類型 4、查出/tmp的權限,以數字方式顯示 二: 1、顯示/proc/meminfo文件中以大小s開頭的行;(要求:使用兩種方式) 2、顯示/etc…

    Linux干貨 2016-08-12
  • Shell腳本編程之入門基礎(一)

    Shell腳本編程   一、本章節一內容:    編程基礎    腳本基本格式    變量    運算    條件測試   在本章節開始之前,我們先回顧下前面的知識點內容。前面學習了Linux的基礎入門,了解到計算機是運行二進制指令的,而我…

    Linux干貨 2016-08-12
  • Linux下軟件包安裝(rpm,yum)

    Linux下軟件包安裝(rpm,yum,源代碼) 1)    Rpm包管理安裝 2)    Yum包程序管理器 3)    本地Yum倉庫建制 ======================================= 1) …

    Linux干貨 2016-06-22
  • DNS and BIND 介紹及安裝

    DNS DNS是什么 為什么要用DNS 域名 BIND DNS是什么 DNS:Domain Name System,域名系統DNS作為域名和IP地址相互映射的一個分布式數據庫,能夠讓用戶更方便的訪問互聯網。它的正向映射是吧一個主機和IP地址關聯起來,它的反向映射則是IP地址到主機名。DNS協議運行在UDP協議上,使用53端口。 為什么要用DNS 連接到互聯網…

    Linux干貨 2016-05-28
欧美性久久久久