-type

  • 指定搜索结果类型
  • 可选值

    • d: directory 目录
    • f: file 文件

-name

指定搜索名称:

  • 可以使用通配符

eg:

1
2
find . -name "*public*" -type d
# result : ./public

相关命令

-iname

  • 忽略大小写

-regex

指定搜索名称:

  • 使用完全的正则表达式

eg:

1
2
find . -regex ".*public" -type d
# result: ./public

-exec your_command {} \;

  • 指定执行的命令

    • 针对每个搜索结果
1
find . -name "*public*" -type d -exec rm -i -r {} \;
  • 辅助记忆

    • \;

      • 可以认为是对 ; 的转义

-mtime -1

指定修改时间 modified time

  • 可选值

    • -1: 表示修改时间在一天之内
    • +1: 表示修改时间大于一天
    • 负数:表示在……之内(小于)
    • 正数:表示在……之外(大于)
  • 时间单位

例子:

1
2
3
4
5
# 查找过去 7 天内修改过的文件(0~7 天内 modified 文件):
find /path/to/search -type f -mtime -7

# 查找超过 30 天前修改的文件:
find /path/to/search -type f -mtime +30

类似命令

-atime

-ctime

时间单位为分钟 minutes

-amin

-cmin

-mmin

-newer to_compaire_file

  • 修改时间相对比较
1
2
# 比 hello.cpp 更晚修改的文件
find . -newer hello.cpp

-size

指定占用空间大小

  • 单位:

    • 'b': bit
    • 'c': bytes
    • 'w': two-byte word
    • 'k': kiB
    • 'M': MiB
    • 'G': GiB
  • 正数:大于
  • 负数:小于

    1
    2
    
      # 搜索大小,小于15MiB 的文件
      find . -size +15M

-perm 777

  • 指定搜索的 访问权限
1
find . -perm 777

-links num

指定文件的链接个数

  • 可选值

    • 正整数
    • 1: 只有本身,没有链接
    • >=2: 本身 + 链接数

-maxdepth num

指定路径查找深度

1
find . -maxdepth 1 -iname "*.zip"

逻辑运算 and not or

  • not

    • -not expr
    • ! expr
    • eg:

      1
      2
      3
      4
      
      $ find . -type f -not -iname "*.pdf"
      ./SPIE/access-suspended
      ./SPIE/access-suspended.6
      ./SPIE/access-suspended.2
      • 这里

        • -iname "*.pdf" 就是我们说的 expr
  • and

    • exprA -a exprB
  • or

    • exprA -o exprB