语法:
find [OPTION]... [查找路径] [查找条件] [处理动作exec]
查找路径:指定具体目标路径;默认为当前目录
查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件
处理动作:对符合条件的文件做操作,默认输出至屏幕
locate:跟whatis
依赖于数据库,自动更新数据库,非实时查找,结果非精确,查找速度快,模糊查找
updatedb 手动生成数据库
find:
实时查找:速度慢
精确匹配
查找条件:
-name ”文件名称“:支持使用gloab(文件通配)
-iname "文件名称":查找时不区分大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n 链接数为n的文件
-user UserName:根据属主查找
-group GroupName:根据属组查找
-uid UID:根据属主的UID查找
-gid GID:根据属组的GID查找
-nouser:查找没有属主的文件
-nogroup:查找没有属主的文件
-maxdepth level 最大搜索目录深度
-mindepth level 最小搜索目录深度
-regex "pattern" 基于正则表达式查找文件
-type: 根据文件类型查找
f:普通文件
d:目录
b:块设备
c:字符设备
l:符号链接文件
p:命令管道
s:套接字
空文件或目录
-empty
-size:根据文件大小查找在单位内的
-size [+|-]#unit
例如 -size+2M,大于3MB
常用单位k.M,G
1M表示(0-1M)之间的所有的文件
#:(#-1)<x<=#
根据时间戳来查找:
以天为单位(time):
-atime [+|-]# 访问时间
+#:表示(#+1)天之外被访问过
-:表示#天内被访问过的
无符号:表示短于(#+1)>x>=#天的时间段被访问过
-ctime 改变时间
-mtime 修改时间
以分钟为单位(min)
-amin:
-mmin:
-cmin:
根据权限查找:
-perm [+|-]MODE
MODE: 精确匹配
+MODE:任何一类用户的任何一位权限匹配即可,常用于查找某类用用户的某特定权限是否存在
-MODE: 每类用户的指定要检查的权限位都匹配
文件权限:644
-perm 600:否
-perm +222:是,查找用户有写权限
-perm +002:否,不匹配,0表示不查看
-perm -444,是
组合条件:在要要查找的选项前面加
-a:与。同时满足,可省略
-o:或,满足一个即可
-not,!非。取反
非A,并且非B:非(A或B)
-not( -user hadoop-0 iname ”*.txt“)
德·摩根定律:
(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或B)
示例:
!A -a !B = !(A -oB) !A -o !B = !(A -a B)
处理动作:
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行“ls -l”命令
-delete:删除查找到的文件
-flsfile:查找到的所有文件的长格式信息保存至指定文件中
-okCOMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-execCOMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
{}: 用于引用查找到的文件名称自身
find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令