locate,find文件查找

locate | find


*** locate 路徑中包含字符串 即匹配;

     -n#     指定顯示結果前幾個

     -b      只匹配路徑名中的基名    

     -c      統計符合條件的文檔數量

     -r BRE    可使用正則表達式

    依賴于已建立的數據庫  速度較快  類似whatis搜索實現  

    數據庫:

        系統自動周期實現

       updatedb 手動更新數據庫

       索引構建極消耗資源 建議在空閑時

    特點:

        速度較快  模糊查找  !非實時查找

locate ./  *.repo

本目錄下.repo結尾的文件或目錄

*** find [OPTIONS] [查找起始路徑][查找條件][處理動作]

     起始路徑:指定目錄下搜索 默認當前目錄;

     查找條件:指定查找標準, 文件名 大小 類型等

     查找動作:對匹配到的對象進行的操作 默認為輸出至標準輸出 輸出至屏幕

    特點:

        查找速度略慢    精確查找    實時查找

    查找條件:

    表達式:選項;標準

        標準: 執行結果為布爾值

  查找 鏈接目錄下的文件    需要 /.*/   以 / 結尾

     1.根據文件名查找:      支持通配符

         -name "patt"               find /etc -name  passwd[[:alnum:]]

         -iname "patt"不區分大小寫      find /etc -iname *passwd

         -inum #  按inode號查找

         -samefile file  相同inode號的文件 

         -links n      鏈接數為n的文件 

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

     2.根據屬主屬組查找:    find /testdir -uid=1000

         -user   USER  ==>  -uid UID  屬主 為指定用戶 的文件

         -group GROUP ==>  -gid GID  屬組 為指定組 的文件

             存在 用戶被移除 文件無屬主的情況

         -nouser 查找 無屬主的文件       find /testdir -nouser

         -nogroup 查找 無屬組的文件

]#find /testdir -user zjj -type p

    /testdir下 屬主為zjj的 管道文件

]#find /tmp -not \( -user root -o -iname "*zz*"\)

    /tmp 目錄下 屬主不為root 且 基名不包含zz的文件

     3.根據類型查找: find /dev -type s -ls

      -type TYPE

         b: 塊設備文件

         c: 字符設備文件

         d: 目錄文件

         f: 普通文件

         l: 符號鏈接設備 軟鏈接

         p: 管道文件

         s: 套接字文件

     4.文件大小查找:

        -size [+|-]#UNIT

             常用單位:K,M,G 相對 單位精確查找

    

            #UNIT:(#-1,#]

            -#UNIT:[0,#-1]

            +#UNIT:(#,∞)

]#find /tmp -size +10K

    /tmp下大于10K的文件  11K-∞

     5.根據時間戳查找:

      以 天   為單位:

         -atime [+|-]# 

             #:[#,#-1)   前 第3天

             -#:(#,0]    前 3天以內

             +#:(∞,#-1)  3天之前

         -mtime

         -ctime

    

      以 分鐘 為單位

         -amin

         -mmin

         -cmin

]#find /etc -mmin -3

    3分鐘內修改過的文件

 

     6.根據權限查找:

        -perm [/|-] mode      mode 精確查找    

]#find -perm 421

    查找權限為421的文件

        -mode 任何一類用戶(u,g,o)的 每一位(r,w,x)都要有對應權限

]#find ./ -perm -624

    文件權限包含mode即匹配

        /mode 任何一類用戶(u,g,o)的 任何一位(r,w,x)符合條件即滿足

]#find ./ -perm /124

    匹配當前目錄u=1 或g=2 或o=4 的文件

    滿足其中之一即匹配

]#find ./ -perm /011

    不管u權限 g或o有寫權限即匹配

===========

    組合標準:

        與 -a  默認的邏輯

        或 -o 滿足之一則匹配

        非 -not,!

    處理動作:

        -print 輸出至標準輸出

        -ls 類似對查到的文件執行 ls -l 輸出文件詳細信息

find ./ -d zjj -amin -5 -not -perm /222 -ls

    

        -delete 刪除查找到的文件!

        -fls /PATH 將文件詳細的信息 保存至指定文件

        -ok CMD {} \; 對查找到的 每個文件執行CDM命令 會逐條要求確認

            固定格式\; {}表示查到的所有文件

        -exec 不交互 直接執行

]#find ./ -nouser -a -nogroup -ok chown zjj:zjj {} \;

     查找當前目錄下 無屬主無屬組的文件 全部添加屬主屬組zjj

-exec CMD {} \; 相對-ok 無確認環節 直接執行CMD

]#find ./ -perm /002 -exec mv {} {}.danger \;

    當前目錄下 o有寫權限的 文件名加上.danger后綴

!find查找到所有文件后會 將結果一次行傳遞給命令,有些命令不能接受過長的參數

找到的文件過多會導致命令執行失敗可用  find …| xargs CMD

  xargs把一個數據流分割為一些足夠小的塊,以方便過濾器和命令進行處理

練習:

1、查找/var目錄下屬主為root,且屬組為mail的所有文件

]#find /var -user root -group mail

2、查找/var目錄下不屬于root、lp、gdm的所有文件

]#find /var -not  \( -user root -o -user lp -o -user gdm \)

3、查找/var目錄下最近一周內其內容修改過,同時屬主不為 root,也不是postfix的文件

]#find /var -mtime -7 -not \( -user root -o -user postfix \)

4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪 問過的文件

]#find / \( -nouser -o -nogroup -atime -7 \) -ls

5、查找/etc目錄下大于1M且類型為普通文件的所有文件

]#find /etc -size +1M -type f

6、查找/etc目錄下所有用戶都沒有寫權限的文件

]#find /etc -not -perm /222

7、查找/etc目錄下至少有一類用戶沒有執行權限的文件

]#find /etc -not -perm -111

8、查找/etc/init.d目錄下,所有用戶都有執行權限,且其它 用戶有寫權限的文件

]#find /etc/init.d/ -perm -113

原創文章,作者:Jasper,如若轉載,請注明出處:http://www.www58058.com/35366

(0)
JasperJasper
上一篇 2016-08-15 09:24
下一篇 2016-08-15 09:24

相關推薦

  • 制作引導分區

      使用虛擬機制作一個可以引導啟動的簡單系統。方法如下:   一、制作兩個分區     1、添加一塊新的硬盤,新建兩個分區,格式化并掛載到/mnt/boot和/mnt/sysroot目錄中;虛擬機添加硬盤的操作很簡單就不做演示了,要注意的是添加的硬盤最好選擇成“將虛擬磁盤存儲為單個個文件”,并為將文件名修改為容易識別的…

    Linux干貨 2016-01-18
  • inotify+rsync同步方案(ubuntu,適用其他發行版)

    系統:Ubuntu 16.04.1  工具:rsync 3.1.1 、inotify -tools 3.14      作者:jevtse    本文除了軟件安裝部分,其他內容同樣適用其他linux系統;同步目標主機:172.16.250.…

    2017-03-05
  • Linux DNS服務系列之原理介紹及正反向解析配置

    前言 我們在訪問一個網站的時候,只要輸入該網站的網址就會跳轉到該網站頁面,而實現這一過程就需要DNS服務器將域名解析為IP地址,進而實現數據通信。那么DNS服務器是如何工作的呢?本系列分為兩部分,本文將詳解DNS服務原理及正反向解析配置。 DNS服務原理詳解 DNS相關知識 DNS:Domain Name Service,域名解析服務 監聽端口:udp/53…

    Linux干貨 2015-04-13
  • Samba & Vsftp

    1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)   1)共享名為shared,工作組為magedu;   2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;   3)添加s…

    Linux干貨 2016-12-20
  • 條件判斷if、case與文件查找locate、find及相關練習

    一、條件選擇 1、if:按條件執行腳本中的內容,可以使用嵌套結構,有單分支、雙分支和多分支結構,每個條件中可以有不止一條語句,如果有多條語句,可以用and(-a)或or(-o)連接在一起,但不能使用&&或||: if COMMANDS; then     COMMANDS;   &n…

    Linux干貨 2016-08-18
  • smb

    練習: 創建一個共享ftp,路徑為/var/ftp/pub;要求僅centos和gentoo用戶能上傳;此路徑對其它用戶不可見; [root@node1 ~]# yum -y install samba [root@node1 ~]# vim /etc/samba/smb.con…

    Linux干貨 2016-10-23

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-19 10:39

    總結的很好,find命令是以后工作或筆試中常出現的考點,需要熟練掌握。

欧美性久久久久