find命令详解

it2025-04-09  19

find命令详解

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

工作特点: 查找速度慢 精确查找 实时查找

使用

find 选项 路径 [查找条件+处理动作] 查找路径:指的是具体目录路径,默认是当前文件夹 查找标准:指定查找标准(文件名、大小、类型、权限等),默认查找所有文件 处理动作:对符合条件的文件做一定的操作,默认的是输出在屏幕上

查找条件

根据文件名查找写

-name 文件名 -iname:忽略大小 -regex “pattern”:以patter匹配整个文件路径字符串,而不仅仅是文件名称

根据属组和属组进行查询

-user:查找属主为指定用户的文件 -group:查找属组为指定组的文件 -uid:查找属主为指定uid的文件 -gid:查找属组为指定gid的文件 -nouser:查找没有属主的文件 -nogroup:查找没有属组的文件

根据文件类型进行查找

-type TYPE f、d、l、s、b、c、p

根据文件大小来查找

-size [+|-]N[bcwkMG]

根据时间戳来查找

天 -atime [+|-]N -mtime -ctime 分钟 -amin -cmin -mmin

根据权限来查找

-perm [+|-] MODE MODE:精确权限匹配 /MODE:任何一类对象的权限只要有一位匹配即可 -MODE:每一类对象都必须同时拥有为其指定的标准

组合条件

与:-a 或:-o 非:-not

案例:找出/tmp目录下,属主不是root,且文件名不是fstab的文件

find /tmp \(-not -user root -a -not -name fstab\)

处理动作

-print:默认的动作,显示至屏幕上 -ls -delete:删除查找到的文件 -fls /path/to/somefile:将查找到的所有文件的长格式的信息保存至指定文件中 -ok COMMAND {}\:对查找到的每个文件执行COMMAND指令,对于每个文件执行命令之前都会交换式要求用户确认 -exec COMMAND {}\:对查找到的每个文件执行COMMAND指令,大括号用于引用查找到的文件名称自身 注意 find传递查找到的文件到后面指定命令时,会将所有符合条件的文件一次性传递给后面的指令。另一种方式 find | xargs COMMAND

练习题

1.查找/var目录下属主为root,且属组为mail的所有文件或目录

find /var -user root -group mail

2.查找/usr目录下属主不属于root,bin,hadoop的所有文件或目录

[root@localhost ~]# find /usr \( -not -user root -a -not -user bin -a -not -user hadoop \) -ls

3.查找/etc目录下最近一周内容被访问过的文件或目录

find /etc -atime -7

4.查找当前系统上没有属主或属组,且最近一周被访问过的文件或目录

find / \( -nouser -o -nogroup \) -atime -7 -ls

5.查找/etc目录下大于1M且类型为普通文件的所有文件或目录

find /etc -size +1M -a -type f -ls

6.查找/etc目录下所有用户都没有写权限的文件

find /etc -not -perm /222 -ls /MODE:任何一类对象的权限只要有一位匹配即可 -MODE:每一类对象都必须同时拥有为其指定的标准

7.查找/etc目录下至少一类用户没有执行权限的文件

find /etc -not -perm -111

8.查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的文件

find /etc/init.d/ -perm -113

大家动动小手点点关注吧,博主希望能与大家交流更多的知识! 博主个人博客:www.save1314.vip

最新回复(0)