find—查找條件
find—查找條件
目 錄
一、根據時間戳查找:
二、根據權限查找
三、根據文件所屬人owner,文件所屬組group查找
四、根據搜索層級查找
五、根據文件名查找
六、根據文件類型查找:
find實時查找工具,通過遍歷指定路徑完成文件查找
(1)工作特點:
查找速度略慢
精確查找
實時查找
可以只搜索用戶具備讀取和執行權限的目錄
(2)語法:
find [OPTION]...[查找路徑] [查找條件] [處理動作]
查找路徑:指定具體目標路徑;默認為當前目錄
查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行;默認為找出指定路徑下的所有文件
處理動作:對符合條件的文件做操作,默認輸出至屏幕
本文主要針對查找條件進行詳細解釋
一、根據時間戳:
1、以“天”為單位
時間戳:atime 訪問時間
mtime 文件數據修改時間
ctime 文件元數據修改時間
2、以“分鐘”為單位
-amin
-mmin
-cmin
3、參數
( 代表大於 ;
)代表小於 ;
[代表大於等於;
]代表小於等於 ; 例如(0,3],表示大於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位上有讀權限且所有人位 上有寫權限,所以只有file2和file3
三、根據文件所屬人(owner)user,文件所屬組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—查找條件