命令与文件查找

命令与文件查找

😄 Written by Zak Zhu

参考

查找命令路径

which命令是通过PATH变量来查找命令路径的

which [-a] COMMAND

查找文件路径

功能强大的find命令

find命令语法

find [查找路径] [查找条件] [处理动作]

查找条件
根据文件类型

-type {f | d | b | c | l | p | s}

e.g. find ./ -type d

1

根据文件名称

Support glob

  • -name FILENAME
  • -iname FILENAME # ingnore-case name

e.g. find /etc/ -name passwd

2

根据文件属性
  • -user USER
  • -group GROUP
  • -uid UID
  • -gid GID
  • -nouser
  • -nogroup

e.g. find ./ -user zac

根据文件权限

-perm [+ | -]MODE

  • MODE: 精确匹配该文件权限, 则符合条件
  • +MODE: 匹配该文件权限中任何一位, 则符合条件
  • -MODE: 同时存在于该文件User, Group, Other中, 则符合条件

e.g. find ./ -perm 0777

3

e.g. find ./ -perm +222

4

e.g. find ./ -perm -222

5

根据文件大小

-size [+ | -]SIZE

File Size: 小数进一匹配

e.g. find ./ -size 1M

6

e.g. find ./ -size +50M -size -100M # 实际查找的是(50, 99]MB的文件

7

根据文件时间
  • -atime DAY, -mtime DAY, -ctime DAY
  • -amin MINUTE, -mmin MINUTE, -ctime MINUTE

下图非常重要, 看懂就理解时间参数的意义

截取自<鸟哥私房菜P190 图7-2>
8

其他常用选项
  1. -maxdepth LEVEL

    e.g. find ./ -maxdepth 1

    9

  2. -empty

    • 查找空文件: eg find ./ -type f -empty
    • 查找空目录: eg find ./ -type d -empty
条件逻辑组合
  • -a # and
  • -o # or
  • -not

e.g. find ./ \( -nouser -o -nogroup \) -a \( -not -iname '*bz2*' \)

10

处理动作

-exec COMMAND {} \;

e.g. find ./ -name '*.doc' -exec mv {} {}.x \;

11

posted @ 2019-10-07 23:39  ZakZhu  阅读(122)  评论(0编辑  收藏  举报