文件搜索命令集合

find

  • 语法
    find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
  • 说明
    默认路径为当前路径:默认表达式为-print
    • 选项
      -H,-L和-P选项控制符号链接的处理。这些参数之后的命令行参数被视为要检查的文件或目录的名称,直到第一个参数以 `-‘,或以参数’('或`!‘开头的语句为止。该参数及随后的任何参数都应作为描述要搜索的内容的表达式。如果未给订路径,将使用当前目录。如果未给出任何表达式,则使用表达式-print
      -P:不遵循符号链接,这是默认行为。当find检查或打印信息一个链接文件时,这个信息采用链接文件本身属性n.
      -L:遵循符号链接
      -H:不遵循符号链接,除非处理命令行参数时。
      -D debugoptions:打印提示信息
      help:debug参数的说明信息
      tree:以原始和优化的形式显示表达式树
      stat:打印测试文件的stat和lstat的信息
      opt:打印与表达式树优化有关的诊断信息
      rates:打印摘要,指示每个判定成功或失败的频率

      -Olevel:打开查询优化,level可取值为0,1,2,3

    • 表达式
      该表达式由选项、测试和操作组成,所有操作符均由运算符分隔。 -并假定省略了运算符。如果表达式除-prune之外不包含其他任何动作,则对表达式为true的所有文件执行-print。

      • 选项
        -d,-depth:在目录本身之前处理每个目录的内容
        -daystart:从今天开始而不是从24小时之前开始测量时间
        -help,–help:打印命令行使用的摘要信息
        -ignore_readdir_race:忽略当无法统计文件时,find发出的错误消息
        -maxdepth levels:应用测试或动作的目录最大深度
        -mindepth levels:应用测试或动作的目录最小深度
        -mount:不丢弃其他文件系统的目录
        -noignore_readdir_race:关闭-ignore_readdir_race效果
        -noleaf:不要通过假设目录比硬链接数少2个子目录来进行优化
        -regextype type:更改稍后在命令行上发生的-regex和-iregex测试所理解的正则表达式语法。当前实现的类型为emacs(这是默认设置),posix-awk,posix-basic,posix-egrep和posix-extended
        -version,–version:打印find版本信息
        -warn,-nowarn:打开或者关闭警告信息
      • 一些测试
        +n:大于n
        -n:小于n
        n:等于n
        -amin n:n分钟之前最后访问的文件
        -anewer file:文件修改前的最后访问的文件
        -atime n:n天前访问的文件
        -cmin n:n分钟前文件状态被修改的文件
        -cnewer file:文件被修改前文件状态改变的文件
        -ctime n:n天前最后被修改的文件
        -empty:空文件(可以说是正常文件或者目录)
        -executable:匹配可执行的文件或者可搜索的目录
        -false: 设置为false
        -fstype type:指定文件所在文件系统的类型
        -gid n :指定文件组id
        -groupname gname:指定文件所属组
        -ilname pattern:忽略大小写,匹配链接文件文件名
        -iname patterm:忽略大小写,匹配文件名
        -inum n:指定文件inode号
        -ipath pattern:忽略大小写,匹配路径
        -iregex patterm:忽略大小写,匹配正则表达式
        -perm mode:指定文件权限
        -size n:指定文件大小
    • 操作符(优先级递减;未做任何指定时默认使用 -and):
      ( EXPR )
      ! EXPR
      -not EXPR
      EXPR1 -a EXPR2
      EXPR1 -and EXPR2
      EXPR1 -o EXPR2
      EXPR1 -or EXPR2
      EXPR1 , EXPR2

  • 使用实例:
将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
# find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出
# find . -type f
将目前目录及其子目录下所有最近 20 天内更新过的文件列出
# find . -ctime -20
查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
# find /var/log -type f -mtime +7 -ok rm {} \;
查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
# find . -type f -perm 644 -exec ls -l {} \;
为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:
# find / -type f -size 0 -exec ls -l {} \;

locate

在后台数据库中按文件名搜索,搜索速度更快,只能根据文件名搜索,功能单一
使用格式:
locate filename

whereis

搜索命令所在路径及帮助文档所在位置
-b: 只查找可执行文件
-m: 只查找帮助文件

which

搜索命令所在路径及别名

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值