1. 程式人生 > >find—查找條件

find—查找條件

linux

find—查找條件

一、根據時間戳查找:

二、根據權限查找

三、根據文件所屬人owner,文件所屬組group查找

四、根據搜索層級查找

五、根據文件名查找

六、根據文件類型查找:


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

1)工作特點:

查找速度略慢

精確查找

實時查找

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

2)語法:

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

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

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

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

本文主要針對查找條件進行詳細解釋



一、根據時間戳:

1、以“天”為單位

時間戳:atime 訪問時間

mtime 文件數據修改時間

ctime 文件元數據修改時間

2、以“分鐘”為單位

-amin

-mmin

-cmin

3、參數

( 代表大於

)代表小於

[代表大於等於;

]代表小於等於 ; 例如(03],表示大於0,小於等於3

#:[#,#+1)

+#: [#+ 1,]

-#: [0,#)

4、例子

1)查找app目錄中在一天之內修改過的文件

find /app –mtime -1

技術分享

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

分析:find的運用格式為find 錄(不寫目錄則默認當前目錄) 查找條件 –mtime等) 查 找-1 用法是小於一天,即[0 ,1

註:查找條件可以用其他時間

二、根據權限查找

1、-perm /mode:精確權限匹配

+mode[/mode]任何一類(u,g,o)對象的權限中只要能一位匹配即可,或關系,+centos7開始淘 汰,所以本文直接用centos6 、7 中通用的/演示例子

2-perm -mode 每一類對象都必須同時擁有指定權限,與關系0表示不關註

3、例子

1)找出當前目錄下 user有讀權限或者其他人有寫權限的文件

技術分享

分析:不寫路徑的默認當前路徑 4代表讀權限;2代表寫權限;1代表執行權限

/代表各個位上是或關系,

<1> user位上是4代表讀權限,只要user上有讀權限的都可以滿足條件

<2>其他人為寫權限的文件也滿足條件。

<3>當有0時不用管這一位。

<4>三個位置之間的關系是或關系,除去0位置上,其他任意位滿足條件即可。即查找文件的條 件必須是,user位上有讀權限或所有人位上有寫權限,所以全部文件都滿足條件。前面的點

“ .”代表當前目錄。

2)找出當前目錄下 user有讀權限且其他人有寫權限的文件

find -perm -401

技術分享

分析:代表各個位上是或關系

<1> user位上是4代表讀權限,user上必須有讀權限才可以滿足條件;

<2>其他人位上必須有寫權限的文件才滿足條件。

<3>當有0時不用管這一位。

<4>三個位置之間的關系是與關系,即查找文件的條件必須是,user位上有讀權限且所有人位 上有寫權限,所以只有file2file3

三、根據文件所屬人(owneruser,文件所屬組group查找

1、例子

(1)找出當前目錄中所屬人為root的文件

技術分享

分析:當在查找所屬人時加上-user 後面加上所屬人

(2)找出當前目錄中所屬組為guan的文件

技術分享

分析:當在查找所屬組時加上-group 後面加上所屬組

四、根據搜索層級查找:

1、當查找的目錄太大,比如根目錄,當只想查找根一級目錄下的文件,需要下面層級限制

-maxdepth level 最大搜索目錄深度,指定目錄為第1級

-mindepth level 最小搜索目錄深度

2、例子

1)查找根目錄一級目錄權限user有讀權限且其他人有寫權限的文件

find / -maxdepth 1 -perm-401

技術分享

2-mindepth 對於最小搜索目錄的意義不大,因為find的搜索屬於貪婪模式,如果不指定最大的 搜索目錄時,會自動的向下一個目錄搜索。

五、根據文件名查找:

1、-name "文件名稱":支持使用glob *, ?, [], [^]

2、例子

(1)搜索/etc一級目錄下所有以.txt結尾的文件

find /etc -maxdepth 1 -name "*\.txt"

技術分享

分析:在以名字搜索時,要加上-name "*\.txt" 後面模糊匹配時要加雙引號,*代表任意字 符,因為.不能被識別,所以要加\轉譯

(2)搜索/目錄下所有名字為a.txt的文件

find /etc -name a.txt

技術分享

分析:當搜索文件名字確定時不用加雙引號

六、根據文件類型查找:

1、根據文件類型查找:

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

2、例子

(1)找出/app 目錄下一級目錄文件

find /etc -maxdepth 1 -type d

技術分享

分析:find的查找方式查找時,當給出路徑時,查找到的文件顯示時絕對路徑,不給路徑即默認當前路徑,查找到的文件顯示時相對路徑


find—查找條件