文件查找find和locate

        在Linux這個一切皆文件的系統中怎么能快速和精確的查找到文件,是我們必不可少的技能。而文件查找的命令可以讓我們在很短的時間內在文件系統中找到我們要查找的文件。這就是我們要掌握的,因此我來介紹一下文件查找的這兩個命令locate和find。

文件查找:在文件系統上查找符合條件的文件;

文件查找:locate, find

    非實時查找( 數據庫查找) :locate

    實時查找:find

locate命令

查詢系統上預建的文件索引數據庫 :/var/lib/mlocate/mlocate.db

依賴于事先構建的索引;

        索引的構建是在系統較為空閑時自動進行( 周期性任務) ;管理員手動更新數據庫(updatedb); ;索引構建過程需要遍歷整個根文件系統,極消耗資源;

工作特點:

    查找速度快;

    模糊查找;

    非實時查找;

    搜索的是文件的全路徑,不僅僅是文件名可能只搜索用戶具備讀取和執行權限的目錄。

locate 命令語法

locate KEYWORD

locate passwd:搜索名稱或路徑中帶有“passwd ”的文件

lockate.PNG

有用的選項

    -i 執行區分大小寫的搜索

locate -i.PNG

    -n X 只列舉前X 個匹配項目

locate -n.PNG

find命令

實時查找工具,通過遍歷指定路徑完成文件查找;

工作特點:

    查找速度略慢

    精確查找

    實時查找

    可能只搜索用戶具備讀取和執行權限的目錄

find命令語法:

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

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

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

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

查找條件

根據文件名和inode 查找:

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

        *, ?, [], [^]

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

    -inum n 按inode 號查找

    -samefile name 相同inode 號的文件

    -links n 鏈接數為n 的文件

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

文件查找find和locate

文件查找find和locate

根據屬主、屬組查找:

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

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

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

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

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

    find -nouser.PNG

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

find -nogroup.PNG

根據文件類型查找:

    -type TYPE:

    f:  普通文件

    d:  目錄文件

find -type d.PNG

    l:  符號鏈接文件

    s :套接字文件

    b:  塊設備文件

find -type b.PNG

    c:  字符設備文件

    p:  管道文件

根據文件大小來查找:

-size [+|-]#UNIT

常用單位:k, M, G

#UNIT: (#-1, #] ,如:6k

-#UNIT :[0,#-1],  如:-6k

+#UNIT :(#, ∞ ), 如:+6k

find.PNG

6k  :是5k – 6k 之間,不包含5k,但包含6k。

-6k   :是0k – 5k 之間,不僅包含0k, 也包含5k。

+6k?。菏?k-正無窮之間,不包含6k。

find -size.PNG

根據時間戳:

以“天”為單位;

find -mtime.PNG

以“分鐘”為單位:

    -amin

    -mmin

    -cmin

find -amin.PNG

根據權限查找:

-perm [/|-]MODE

MODE:  精確權限匹配

    /MODE :任何一類(u,g,o) 對象的權限中只要能一位匹配即可,或關系,+  從centos7 開始淘汰

    -MODE :每一類對象都必須同時擁有指定權限,與關系

    0  表示不關注

find -perm 755 會匹配權限模式恰好是755 的文件

只要當任意人有寫權限時,find -perm /222 就會匹配

只有當每個人都有寫權限時,find -perm -222 才會匹配

只有當其它人(other )有寫權限時,find -perm -002才會匹配

find -perm.PNG

組合條件:

    與:-a

    或:-o

    非:-not, !

find -o.PNG

find -not.PNG

    德· 摩根 定律:

        非(P 且 Q) = (非 P) 或 (非 Q)

        非(P 或 Q) = (非 P) 且 (非 Q)

   !A -a !B = !(A -o B)

   !A -o !B = !(A -a B)

德摩根.PNG

德.摩根定律.PNG

P=1+3 , Q=2+3 , P 且 Q=3 , P 或 Q=1+2+3

非(P 且 Q) = (非 P) 或 (非 Q)

    非(P 且 Q):非(1+3 且 2+3)=(2+4 或 1+4)= 1+2+4

    (非P)或(非Q): (非 1+3)或(非2+3)=(2+4)或(1+4)= 1+2+4

    (可以看出除了3其他都是)

非(P 或 Q) = (非 P) 且 (非 Q)
    非(P 或 Q):非(1+3 或 2+3)=(2+4 且 1+4)= 4

    (非P)且(非Q) :(非 1+3)且(非 2+3)=(2+4)且(1+4)=4

    (可以看出除了4其他都不是)

排除目錄

find /etc -path ‘/etc/sane.d’ -a -prune -o -name *.conf -print

文件查找find和locate

find 排除目錄.PNG

處理動作

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

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

-delete :刪除查找到的文件;

-fls file :查找到的所有文件的長格式信息保存至指定文件中

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

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

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

{}:  用于引用查找到的文件名稱自身

find 傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令

有些命令不能接受過多參數,此時命令執行可能會失敗,下面方式可規避此問題

find | xargs COMMAND

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

(0)
AN0519AN0519
上一篇 2016-08-24 21:21
下一篇 2016-08-24 21:21

相關推薦

  • Python函數式編程指南(三):迭代器

    這一篇我們將討論迭代器。迭代器并不是函數式編程特有的東西,但它仍然是函數式編程的一個重要的組成部分,或者說是一個重要的工具。 轉載請注明原作者和原文地址:) 3. 迭代器 3.1. 迭代器(Iterator)概述 迭代器是訪問集合內元素的一種方式。迭代器對象從集合的第一個元素開始訪問,直到所有的元素都被訪問一遍后結束。 迭代器不能回退,只能往前進行迭代。這并…

    Linux干貨 2015-03-11
  • 一個PHP程序員學習運維的轉型

         我是一位PHP開發工程師,平時負責前端、后端以及服務器端的工作,但是稱不上是個牛逼的程序員。網上熱烈討論一則傳聞,“全棧工程師”(Full Stack Engineer),要求應征者對開發堆棧的每個方面都有所掌握。那究竟何為 “全棧工程師”呢?從字面上來理解,全棧工程師必須熟悉開發堆棧的每一個層次,或者至少熟悉絕大多數…

    Linux干貨 2017-04-02
  • 15 權限管理及作業

    15 權限管理及作業(作業單獨一篇) 一、雜項知識整理 1、訪問控制列表:ACL:Access Control List,實現靈活的權限管理。     除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限。     centos7.0之后默認創建的ext4文件系統有ACL功…

    Linux干貨 2016-08-04
  • Linux的磁盤管理:

    Linux的磁盤管理: Linux的核心:一切介文件:     open,read,write,close 塊設備:block,存取單位‘塊’,磁盤 字符設備:char 存取單位‘字符’,鍵盤 設備文件:關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信: 設備號碼:   &nbs…

    Linux干貨 2016-07-22
  • 了解 linux

    計算機組成     CPU  ——> central processing unit, 運算器&控制器             主要工作管理和運算;   &…

    Linux干貨 2016-09-17
  • 2016-10-17作業

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 date命令查看系統時間,clock或者hwclock命令查看硬件時間, 將系統時間同步到硬件時間的方法hwclock -s   2 生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在管理工具退出的情況下,腳本依然能正常運行。在生產環境的中創建SCREEN會話,會話的…

    Linux干貨 2016-10-18
欧美性久久久久