引言:想查哪就查哪空盼,蒙多
作用
根據(jù)條件查找某個(gè)路徑下符合規(guī)則的文件、文件夾信息
基礎(chǔ)格式
基礎(chǔ)語法格式:
find [路徑] [選項(xiàng)] [操作]
常用選項(xiàng)
選項(xiàng) | 含義 |
---|---|
-name | 根據(jù)文件名查找 |
-perm | 根據(jù)文件權(quán)限查找 |
-prune | 該選項(xiàng)可以排除某些查找目錄 |
-user | 根據(jù)文件屬主查找 |
-group | 根據(jù)文件屬組查找 |
-mtime -n | +n | 根據(jù)文件更改時(shí)間查找 |
-nogroiup | 查找無有效屬組的文件 |
-nouser | 查找無有效屬主的文件 |
-newer file1 !file2 | 查找更改時(shí)間比file1新但是比file2舊的文件 |
-type | 按照文件類型查找 |
-size -n | +n | 按文件大小查找 |
-mindepth n | 從n級(jí)子目錄開始搜索 |
-maxdepth n | 最多搜索到n級(jí)子目錄 |
場景實(shí)操
注:以下場景均以 /tmp 文件夾為示例锋玲,實(shí)際使用過程中,請?zhí)鎿Q成要搜索的路徑
根據(jù)文件名查找文件(常用)
# 查找 /tmp 目錄下以abc開頭的文件
find /tmp -name 'abc*'
# 查找 /tmp 目錄下所有的json文件
find /tmp -name '*.json'
# 當(dāng)不填寫路徑時(shí),默認(rèn)當(dāng)前路徑,等同于 find .
find -name 'abc*'
# 使用 -iname忽略大小寫匹配
find /tmp -iname 'abc*'
根據(jù)文件歸屬查找文件
# 查找/tmp目錄下园细,屬主為root的文件
find /tmp -user root
# 查找/tmp目錄下,屬組為root的文件
find /tmp -group root
根據(jù)文件類型查找文件
-type 可用值有如下選項(xiàng):
- f 文件
- d 目錄
- c 字符設(shè)備文件
- b 塊設(shè)備文件
- l 鏈接文件
- p 管道文件
# 查找/tmp目錄下接校,名字中帶有abc的文件
find /tmp -name '*abc*' -type f
# 查找/tmp目錄下猛频,名字中帶有abc的文件夾
find /tmp -name '*abc*' -type d
根據(jù)文件大小查找文件
-size 可用值有如下選項(xiàng):
- +n 大小大于n的文件
- -n 大小小于n的文件
- n大小等于n的文件(部分發(fā)行版匹配不到,不推薦使用)
# 查找/tmp目錄下小于200字節(jié)的文件
find /tmp -size -200c
# 查找/tmp目錄下大于1M的文件
find /tmp -size +1M
可選的單位選項(xiàng):
- b 塊,1b=512字節(jié)
- c 字節(jié) 1c=1字節(jié)
- w 2字節(jié) 1w=2字節(jié)
- k 千字節(jié) 1k=1024字節(jié)
- M 兆字節(jié) 1M=1024*1024字節(jié)
- G 1G=102410241024 字節(jié)
根據(jù)修改時(shí)間查找文件
-mtime 可用值有如下選項(xiàng):
- -n n天以內(nèi)修改的文件
- +n n天以外修改的文件
- n 正好n填修改的文件
-mmin 可用值有如下選項(xiàng):
- -n n分鐘以內(nèi)修改的文件
- +n n分鐘以外修改的文件
# 查找/tmp目錄下30天之前修改名稱包含abc的文件
find /tmp -name '*abc*' -mtime +30 -type f
# 查找/tmp目錄下3分鐘內(nèi)修改的文件
find /tmp -mmin -3 -type f
過濾查找目錄層級(jí)
# 從/tmp的第2級(jí)子目錄開始搜索,名稱中包含abc的文件
find /tmp -mindepth 2 -name '*abc*'
# 搜索/tmp中名稱中包含abc的文件伦乔,最多搜索到3級(jí)目錄
find /tmp -maxdepth 3 -name '*abc*'
目錄層級(jí)過濾條件要放到最前面,這樣匹配之前就過濾掉了不需要匹配的目錄董习,效率最高