linux 搜索文件名中非,Linux文件查找之find&locate

Linux文件查找之find&locate

一、概述

Linux系统核心的思想之一“一切皆文件“,对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令find和locat,熟练使用find命令是运维人员的必经之路

二、find的用法及示例

1.find特点

查找速度略慢

精确查找

实时查找

只能搜索有读取和执行权限的目录

2.find用法

用法:find  [options]  [查找路径]  [ 查找条件]  [处理动作]

查找条件:根据文件类型查找

-type f|d.......

f普通文件

d目录

l链接

s套接字

b块设备

c字符设备

p管道文件

根据属主、属组查找

-user name查找目录下属主为name的文件

-group g1查找属组为g1的文件

-uid #查找uid为#的文件

-gid #查找gid为#的文件

-nouser查找没有属主的文件

-nogroup查找没有属组的文件

特定选项

-mindepth level设置最小搜索层级

-maxdepth level设置最大搜索层级

-name匹配文件名搜索,支持通配符

-iname以名称搜索,忽略文件名大小写

-inum #按inode号搜索

-samefile 搜索相同inode号的文件

-links #搜索链接数为#的文件

-regex "pattern"搜索匹配该字符串的文件

-prune将某个目录排除在搜索路径之外

根据文件大小查找

-size  [+|-]#(单位)常用单位:k  M  G

6k表示5k

-6k表示0≤S≤5k

+6k表示S>6k

根据时间戳查找

-atime  [+|-]#+5:5天以前  -10:十天以内

-atime   访问时间,以天为单位

-mtime更改时间,以天为单位

-ctime改变时间,以天为单位

-amin以分钟为单位

-mmin以分钟为单位

-cmin以分钟为单位

根据权限查找

-perm [/|-]mode

mode精确权限匹配 如:find -perm 222  匹配权限为222的文件

/mode权限位(ugo),只要有一位匹配即可,或者关系

如:find -perm /222  只需一个权限位有写权限即可

-mode指定权限权限位都必须匹配

如:find -perm -222  各权限位都有写权限

注意三种权限的区别

组合条件

-a 与

-o或

-not,!非

烧脑的非选项

!A -a !B=!(A -o B)

!A -o !B=!(A -a B)

处理动作

-print打印匹配文件

-ls长格式显示匹配文件

-delete删除匹配文件

-fls outfile输出到指定文件

-ok cmd {} \;对查找到的每个文件执行cmd命令,交互确认

-exec cmd {} \;执行cmd命令,不进行交互确认

{}代表查找到的文件自身

注意:由于是find查找到的文件,是一次性传递给后面的cmd命令,有写命令会出现报错现象,可使用xargs解决

find  .......   |   xargs   cmd

3.find使用实例

①、搜索/var目录下文件名中含有log的文件

find /var -name "*log*"

②、搜索/app目录下属主为tom,数组为g1的文件

find /app  -user tom -a -group g1

③、搜索/app目录下属主不是tom,也不是joe的文件

find /app -not -user tom -a -not -user -joe

find /app -not \(-user tom -o -user joe\)

④、删除存在时间超过3天以上,属主为tom的临时文件

find /tmp -ctime +3 -user tom -ok rm {} \;

⑤、查找自己家目录可以被其他用户写入的文件,并去掉其他用户的写权限

find ~ -perm -022 -exec  chmod  o-w  {}  \;

⑥、查找/var目录下10以前修改的文件

find /var -mtime +10 -print

⑦、查找/var目录下10以内修改的文件

find /var -mtime -10

⑧、查找/var目录更改时间下比file1.log新,比file2.log旧的文件

find /var -newer file1.log -a -not -newer file2.log

⑨、查找/etc一级目录下所有的目录文件

find /etc -maxdepth 1 -type d

⑩、查询/目录下大于100M的文件

find / -size +100M

11、删除/root一级目录中非隐藏文件的普通文件

find ~ -maxdepth 1 -type f |grep -v "/root/\."

12、查询当前系统中没有属主和属组的文件

find / -nouser -a -nogroup

13、查找系统中所有具备suid权限的文件

find / -perm /u=s

14、查找系统中所有具备sgid权限的文件

find / -perm /g=s

15、查找/etc所有可执行文件

find /etc -perm /a=x

16、查找系统中所有空文件

find / -type f -empty

17、查询/etc目录下所有隐藏文件

find /etc -type f -name ".*"

18、查找50-100内被修改过的文件

find / -mtime +50  -mtime -100

19、查找最近1小时被修改过的文件

find / -mmin -60

三、locate用法及示例

1、locate概述

相比find,locate查找速度比较快,但由于其仅支持非实时查找,使用率不高

2、locate工作特点

查找速度快

非实时查找

搜索文件全路径

只能搜索用户具备读取和执行权限的目录

3、locate用法

locate [options]  匹配模式

-i不区分大小写搜索

-n #只列举前#个匹配项

4、示例

locate conf查找文件名中含有conf的文件

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值