find命令詳解

find命令詳解

實時查找工具,通過遍歷指定起始路徑下文件系統層級結構完成文件查找;

一、工作特性:

  • 查找速度略慢;
  • 精確查找,只查找文件路徑的基名而非整個路徑;
  • 實時查找;
  • 可能只搜索用戶具備讀取和執行權限的目錄

二、 用法:

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

  • 查找起始路徑:指定具體搜索目標起始路徑;默認為當前目錄;
  • 查找條件:指定的查找標準,可以根據文件名、大小、類型、從屬關系、權限等等標準進行;默認為找出指定路徑下的所有文件;
  • 處理動作:對符合查找條件的文件做出的操作,例如刪除等操作;默認為輸出至標準輸出;

1. 查找起始路徑

查找時,可以指定搜索層級:

  • -maxdepth level 最大搜索目錄深度,指定目錄為第一等級,其子目錄為2等級;
  • -mindepth level 最小層級目錄深度搜索,指最少搜索多少層
    例子:只顯示目錄的二層,
    ~]$find -maxdepth 2 -mindepth 2 -name file

2、查找條件

即表達式,由選項和測試組成;測試結果通常為布爾型(”true”, “false”)

①根據文件名和inode查找:

  • -name “pattern”:區分字符大小寫
  • -iname “pattern”:不區分字符大小寫
    注意:此處pattern支持glob風格的通配符;例如 *, ?, [], [^]
  • -samefile name 相同inode好的文件
  • -links n 鏈接數為n文件
  • -regex pattern:基于正則表達式模式查找文件,匹配是整個路徑,而非基名;一般不用;

② 根據文件從屬關系查找:

  • -user USERNAME:查找屬主指定用戶的所有文件;
  • -group GRPNAME:查找屬組指定組的所有文件;
  • -uid UID:查找屬主指定的UID的所有文件;
  • -gid GID:查找屬組指定的GID的所有文件;
  • -nouser:查找沒有屬主的文件(不用跟用戶名);
  • -nogroup:查找沒有屬組的文件(不用跟組名);

③ 根據文件的類型查找:

  • -type TYPE:
    f: 普通文件
    d: 目錄文件
    l:符號鏈接文件
    b:塊設備文件
    c:字符設備文件
    p:管道文件
    s:套接字文件

④ 組合測試:

  • 與:-a, 默認組合邏輯,可?。?
  • 或:-o
  • 非:-not, !
  • 德.摩根定律

    • (非P)或(非Q)=非(P且Q)
      +(非P)且(非Q)=非(P或Q)
      注意:使用摩根定律時括號加上轉義符\
      例子:
      !A -a !B = !(A -o B)
      !A -o !B = ! (A -a B)

⑤ 根據文件的大小查找:

  • -size [+|-]#UNIT
    常用單位:k, M, G

    • #UNIT:(#-1, #]
      如:6k 表示(5k,6k]
    • -#UNIT:[0,#-1]
      如:-6k 表示[0,5k]
    • +#UNIT:(#, oo)
      如:+6k 表示(6k,無窮)

⑥ 根據時間戳查找:

以“天”為單位:

  • -atime [+|-]#

    • #:[#, #-1)
    • -#:(#, 0]
    • +#:(oo, #-1]
  • -mtime
  • -ctime

以“分鐘”為單位:

  • -amin
  • -mmin
  • -cmin

⑦ 根據權限查找:

  • -perm [/|-]mode

    • -mode:精確權限匹配;每一類用戶(u,g,o)的權限中的每一位(r,w,x)同時符合條件即滿足;9位權限之間存在“與”關系;非0權限位的“與”;只有當前面有/或者-時候,0表示不關注
    • /mode:任何一類用戶(u,g,o)的權限中的任何一位(r,w,x)符合條件即滿足;9位權限之間存在“或”關系;非0權限位的“或”;
      find -perm 755 會匹配權限模式恰好是755的文件
      只要當任意人有寫權限時,find-perm+222就會匹配
      只有當每個人都有寫權限時,find-perm-222才會匹配
      只有當其它人(other)有寫權限時,find-perm-002才會匹配
      #### ⑧ 查找比某個文件新或比某個文件舊
  • -newer:選項
    格式為:-newer newest_file_name ! -newer oldest_file_name

3、處理動作:

  • -print:輸出至標準輸出;默認的動作;
  • -ls:類似于對查找到的文件執行“ls -l”命令,輸出文件的詳細信息;
  • -delete:刪除查找到的文件;
  • -fls /PATH/TO/SOMEFILE:把查找到的所有文件的長格式信息保存至指定文件中;
  • -ok COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;每次操作都由用戶進行確認;此處{}表示引用找到的文件的文件名;
  • -exec COMMAND {} \; :對查找到的每個文件執行由COMMAND表示的命令;此處{}表示引用找到的文件的文件名;

注意:find傳遞查找到的文件路徑至后面的命令時,是先查找出所有符合條件的文件路徑,并一次性傳遞給后面的命令;但是有些命令不能接受過長的參數,此時命令執行會失??;如下方式可規避此問題:find | xargs COMMAND

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

(0)
oranixoranix
上一篇 2017-03-19 16:15
下一篇 2017-03-19 16:52

相關推薦

  • 0803linux基礎小記

    讓普通用戶無法登錄: centos 6  touch /etc/nologin echo "wating" > /etc/nologin 普通用戶登錄時不能進入系統,有提示信息 centos7  touch /etc/nologin 或touch /run/nologin  chage -l …

    Linux干貨 2016-08-05
  • 學習宣言

    已經虛度了第一個關鍵的10年,不能再失去下一個10年,3年內年薪20w,5年內年薪30w。

    Linux干貨 2016-12-26
  • 網絡知識點

    1. 實現異地搭建局域網的方法1>. 讓運行商拉專線,這是相當昂貴的。2>.  VPN (Virtual PrivateNetwork)  虛擬專用網絡 2. VPN的隧道協議主要有三種:PPTP、L2TP和IPSec。其中PPTP和L2TP協議工作在OSI模型的第二層,又稱為二層隧道協議;IPSec是第三層隧道協議。 2. …

    Linux干貨 2016-09-01
  • web service之http協議

    一.概述 1.web應用的核心是http協議(HyperText Transfer Protocol),http協議的由兩部分組成,客戶端程序和服務器端程序,通過交換http報文進行會話。web頁面則是由對象(也叫資源)組成的,對象直白的說就是一個個的文件,而這些對象可以通過URL引用,URL由兩部分組成,存放對象的主機名和對象的文件路徑,而這些對象都存儲在…

    Linux干貨 2016-11-03
  • 如何在微軟云上搭建mysql主從

    大家好: 今天我分享下在生產環境的微軟云服務器上如何搭建mysql主從: 環境如下圖: 我把cnux06-testing設為Mysql主服務器,暫時沒需求的cnux04-web1db2設為Mysql從服務器 1–首先要在master上開啟binlog日志功能并使主從庫中的 server-id保持不同 操作步驟如下: A: 先查看mysql的主目錄…

    Linux干貨 2017-02-14
  • LVS入門

    隨著互聯網進入尋常百姓家,網絡流量愈來愈大,大規模的網路訪問如果都使用一個服務器提供服務,那么網絡通訊注定會擁堵不堪。為了解決這些問題,達到使網絡流量均衡地分散到各個服務器上的目的,一些技術大牛發明了LVS負載均衡技術。   LVS簡介   LVS(Linux Virtual Server)即為Linux虛擬服務器,使由章文嵩博士主導開發…

    Linux干貨 2017-05-09

評論列表(1條)

  • All well
    All well 2017-03-19 16:54

    寫的不錯哦,盼盼,很地道,全面,點個贊

欧美性久久久久