01.find
[toc]{type: “ol”, level: [2, 3, 4, 5]}
find简介
find是linux里面的一个实时查找工具,通过制定路径完成文件查找
find [options] ..... [查找路径] [查找条件] [处理动作]
查找路径: 查找的位置,默认是当前文件夹 必须指定
查找条件:制定查找的标准,文件名、大小、类型、日期等等
处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上
查找条件
根据文件名查找
-name 指定名称,可以使用正则
-iname 忽略大小写
-links n 引用次数为n的文件
-regex 后面跟完整路径,而不是文件名,必须整个路径完全匹配
制定搜索的层级
-maxdepth level 最大的搜索深度,指定的目录为第1层
-mindepth level 最小的搜索深度,包括level层
根据属主、属组来查找
-user username 查找属主为username的文件
-group groupname 查找属组为groupname的文件
-uid id 查找属主为id的文件
-gid id 查找属组为id的文件
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
根据文件类型 -type
find . -type f
d 目录
f 文件
l 符号链接
s 套接字
b 块设备
c 字符设备
p 管道文件
根据大小来查找
-size * (*-1,*] # 不包括*-1,包括*
-size -* [0,*-1]
-size +* (*,......)
根据时间来查找
-atime * [*,*+1)
-atime -* (0,*)
-atime +* [*+1,....]
其他
-empty 空文件或者空目录
# 条件
-a 与
-o 或
-not 非
-path 排除目录
处理动作
-print 默认的处理动作,显示在屏幕上
-ls 类似于ls -l 显示长格式
-delete 删除查找到的文件
-fls file 将查找的结果以长格式保存到文件中
-ok command {} ; 对每一个查找到的文件执行command命令,在执行命令之前要先提示用户是否要执行
-exec command {} ; 对查到的每一个文件执行command命令,不需要确认,一次性交给后面命令处理