find - search for files in a directory hierarchy
find命令用于在目錄層級(jí)中查找文件
SYNOPSIS
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
簡(jiǎn)單用法:
find PATH EXPRESSION
EXPRESSION
Numeric arguments can be specified as
+n for greater than n,
-n for less than n,
n for exactly n.
選項(xiàng)太多不一一列舉懂盐,常用的在下面的示例中說(shuō)明,要深究的話建議查看幫助手冊(cè)(英文描述其實(shí)更地道癣亚,翻譯成中文有時(shí)反而難以理解,可能大家看到過(guò)一個(gè)詞“句柄”,不知道大家是怎么理解的拘泞,反正我是無(wú)法理解舷胜,語(yǔ)句?手柄里覆?)
EXAMPlES
1.按文件名查找丧荐,支持通配符
find 目錄 -name "pattern"
2.按文件名查找,同時(shí)忽略大小寫(xiě)
find 目錄 -iname "pattern"
3.按所屬用戶查找
find 目錄 -user "pattern"
4.按所屬用戶組查找
find 目錄 -group "pattern"
5.查找所屬用戶指定的UID的文件
find 目錄 -uid "pattern"
6.查找所屬用戶指定的UID的文件
find 目錄 -gid "pattern"
7.查找無(wú)用戶的文件
find 目錄 -nouser "pattern"
8.查找無(wú)用戶組的文件
find 目錄 -nogroup "pattern"
9.按文件類(lèi)型查找
find 目錄 -type TYPE
TYPE:
- f: 普通文件
- d: 目錄文件
- l:符號(hào)鏈接文件
- b:塊設(shè)備 文件
- c:字符設(shè)備文件
- p:管道文件
- s:套接字文件
10.按文件大小查找喧枷,+表示>虹统,-表示<
find 目錄 -size [+|-]n[cwbkMG]]
- b: for 512-byte blocks (this is the default if no suffix is used)
- c: for bytes
- w: for two-byte words
- k: for Kilobytes (units of 1024 bytes)
- M: for Megabytes (units of 1048576 bytes)
- G: for Gigabytes (units of 1073741824 bytes)
11.按時(shí)間戳(天數(shù))查找,-atime(訪問(wèn)天數(shù))-ctime(change天數(shù))-mtime(修改天數(shù))
find 目錄 -atime [+|-]n
find 目錄 -ctime [+|-]n
find 目錄 -mtime [+|-]n
12.按時(shí)間戳(分鐘)查找隧甚,-amin(訪問(wèn)分鐘)-cmin(change分鐘)-mmin(修改分鐘)
find 目錄 -amin [+|-]n
find 目錄 -cmin [+|-]n
find 目錄 -mmin [+|-]n
13.按權(quán)限查找
mode:精確匹配
/mode:任何一類(lèi)用戶(u,g,o)的權(quán)限中的任何一位(r,w,x)符合條件即滿足车荔;9位權(quán)限之間存在“或”關(guān)系;
-mode:每一類(lèi)用戶(u,g,o)的權(quán)限中的每一位(r,w,x)同時(shí)符合條件即滿足戚扳;9位權(quán)限之間存在“與”關(guān)系忧便;
find 目錄 -perm [/|-]mode
選項(xiàng)組合
-a:與
-o:或
-not/!:非
處理動(dòng)作
-exec 命令... {} \;
#示例:查找當(dāng)前目錄下.txt后綴,并且1天內(nèi)修改過(guò)的文件
find ./ -name "*.txt" -a -mtime -1 -exec ls -lh {} \;
注意
find傳遞查找到的文件路徑至后面的命令時(shí)帽借,是先查找出所有符合條件的文件路徑珠增,并一次性傳遞給后面的命令;但是有些命令不能接受過(guò)長(zhǎng)的參數(shù)砍艾,此時(shí)命令執(zhí)行會(huì)失數俳獭;
另一種方式可規(guī)避此問(wèn)題:
find | xargs COMMAND