当前位置: 首页 > 工具软件 > FindShell > 使用案例 >

shell脚本之find

墨雨华
2023-12-01

shell脚本之find

​ 实时查找工具,通过遍历指定路径下的文件系统完成文件查找。

​ find命令的工作方式如下:沿着文件层次结构向下遍历,匹配符合条件的文件,执行响应的操作。

语法:find [options]… [查找条件][处理动作]

​ 查找路径:指定具体的目标路径,默认为当前目录。

​ 查找条件:指定的查找标准,可以是文件名、大小、类型、权限等,默认为找出指定路径下的所有文件。

根据文件名查找

​ -name “文件名称”:支持通配符查找;

​ -iname “文件名称”:不区分文件名大小写;

#匹配/home/dou目录下所有以.txt为结尾的文件
find /home/dou -name "*.txt" -print
根据属主、属组查找

​ -user USERNAME:查找属主为指定用户的文件;

​ -group GROUPNAME:查找属组为指定用户的文件;

​ -uid USERID:查找属主为指定uid号的文件;

​ -gid GroupID:查找属组为指定GID号的文件;

​ -nouser:查找没有属主的文件;

​ -nogroup:查找没有属组的文件;

#打印出当前目录下doudou拥有的所有文件
find . -type f -user doudou -print
根据文件类型查找

​ -type TYPE

​ f:普通文件;

​ d:目录文件;

​ l:符号链接文件;

​ s:套接字文件;

​ b:块设备文件;

​ c:字符设备文件;

​ p:管道文件;

#匹配当前目录下所有的目录文件
find . -type d -print
组合条件

​ 与:-a

​ 或:-o

​ 非:-not,!

#匹配包含这两种文件类型的文件
find . \(-name "*.txt" -o "*.pdf"\) -print
根据文件大小进行查找

​ -size [+,-]num单位,常用单位有:k、M、G

​ num单位:显示的是大于num-1,小于等于num这个区间内的值;

​ -num单位:显示的是大于等于0,小于等于num-1区间内的值;

​ +num单位:大于num至无穷大区间内的所有值;

#匹配当前目录下大于2K的文件
find . -type f -size +2k
根据文件时间进行查找

访问时间(-atime):用户最近一次访问文件的时间;

修改时间(-mtime):文件内容最后一次被修改的时间;

变换时间(-ctime):文件元数据(例如权限和所有权)最后一次改变的时间

#匹配打印最近7天内别访问的所有文件
find . -type f -atime -7 -print

-amin:访问时间-分钟

-mmin:修改时间-分钟

-cmin:变化时间-分钟

#打印出访问时间超过7分钟的所有文件
find . -type -amin +7 -print
根据目录的深度进行查找

-mindepth,-maxdepth选项来限制find命令遍历的目录深度

#列出当前目录下的所有以f开头的文件,即使有子目录,也不会被打印和遍历
find . -maxdepth 1 -name "f*" -print
处理动作

​ -print:默认处理动作,显示至屏幕;

​ -ls:类似于对查找到的文件执行"ls -l"命令;

​ -delete:删除查找到的文件

​ -fls /PATH/TO/SOMEFILE:查找到的所有文件的长格式信息保存至指定文件中

 类似资料: