linux程序员Shell和命令

Linux运维之道(10)——Linux查找find命令全面剖析

2016-03-30  本文已影响1431人  逃跑中计划

@(linux)[find]


1. 文件查找

在文件系统上查找符合条件的文件

1.1 简述locate

非实时查找(数据库查找)

格式:
locate KEYWORD

工作特点:

1.2 简述find

实时查找

工作特点:

2. find命令

格式:
find [OPTION]... [查找路径] [查找条件] [处理动作]

查找路径:

查找条件:

处理动作:

2.1 根据文件名查找

2.2 根据属主、属组查找

2.3 根据文件类型查找

2.4 组合条件

2.5 根据文件大小来查找

2.6 根据时间戳

以“天”为单位

以“分钟”为单位

2.7 根据权限查找

2.8 处理动作

Note:

  • find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令
  • 有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题:find | xargs COMMAND

3. 实战演示

1、查找/var目录下属主为root,且属组为mail的所有文件或目录
# find /var -user root -group mail

2、查找/usr目录下不属于root、bin或hadoop的所有文件或目录
# find /usr -not -user root -a -not -user bin -a -not -user hadoop
# find /usr -not \( -user root -o -user bin -o -user hadoop \)

3、查找/etc目录下最周一周内其内容修改过,同时属主不为root,也不是hadoop的文件或目录
# find /etc -mtime -7 -a -not -user root -a -not -user hadoop
# find /etc/ -mtime -7 -a -not \( -user root -o -user hadoop \)

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件或目录
# find / -nouser -a -nogroup -a -atime -7

5、查找/etc目录下大于1M且类型为普通文件的所有文件
# find /etc -size +1M -type f

6、查找/etc目录下所有用户都没有写权限的文件
# find /etc -not -perm /222

7、查找/etc目录下至少有一类用户没有执行权限的文件
# find /etc -not -perm -111

8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件
# find /etc/init.d -perm -113

9.找出/tmp目录下,属主不是root,且文件名不是fstab的文件
# find /tmp \( -not -user root -a -not -name 'fstab' \) -ls
# find /tmp -not \( -user root -o -name 'fstab' \) -ls

4. 思维导图

Linux查找find命令全面剖析
上一篇 下一篇

猜你喜欢

热点阅读