find,locate,whereis,which

从磁盘上便利需要的文件

语法格式find [路径] [选项] [操作]
  • 选项参数对照表
选项含义
-name根据文件名进行查找
-perm根据文件权限进行查找
-prune该选项可以排除某些查找目录
-user根据文件属主进行查找
-group根据属组进行查找
-mtime -n | +n根据文件更改时间进行查找
-nogroup查找无有效属组的文件
-nouser查找无有效属主的文件
-newer file 1 ! file2查找更改时间比file1新但比file2旧IDE文件
-type按文件类型查找
-size -n | +n按文件大小查找
-mindepth n从n级子目录开始搜索
-maxdepth n最多搜索到n级子目录

  • 常用选项

    • -name 查找/etc目录下以conf结尾的文件 find /etc -name ‘*.conf’

    • -iname 查找当前目录下文件名为aa的文件,不区分大小写 find ./ -iname ‘aa’
      在这里插入图片描述

    • -user 查找文件属主为hdfs的所有文件 find . -user hdfs

    • -group 查找文件属组为yarn的所有文件 find . -group yarn’

    • -type
      f 文件 find . -type f
      d 目录 find . -type d
      c 字符设备文件 find . -type c
      b 快设备文件 find . -type b
      l 链接文件 find . -type l
      p 管道文件 find . -type p
      -size
      -n 大小小于n的文件
      +n 大小大于n的文件
      n 大小等于n的文件

    • -mtime
      -n n天以内修改的文件
      +n n天意外修改的文件
      n 正好n天修改的文件
      查找/etc目录下5天之内修改且以conf结尾的文件
      find /etc -mtime -5 -name ‘*.conf’
      查找/etc目录下10天之前修改且属主为root的文件
      find /etc -mtime +10 -user root

    • -mmin
      -n n分钟以内修改的文件
      +n n分钟意外修改的文件
      /etc目录下30分钟之前修改的文件
      find /etc -mmin +30
      /etc目录下30分钟之内修改的目录
      find /etc -mmin -30 -type d

    • -mindepth n 表示从n级子目录开始搜索
      在/etc下3级子目录开始搜索
      find /etc -mindepth 3

    • -maxdepth n 表示最多搜索到n级子目录

    • perm
      find . -perm 664

    -prune
    通常和-path一起使用,用于将铁定目录排除在条件之外

       查找当前目录下所有普通文件,但排除test目录
      	find . -path ./etc -prune -o -type f
      查找当前目录下所有普通文件,但排除opt和etc文件
      	find . -path ./etc -prune -o -path ./otp -prune -o -type f
      查找当前目录下所有普通文件,但排除opt和etc文件,但属主为hdfs,且文件大小必须大于500字节
      	find . -path ./etc -prune -o -path ./opt -prune -o -type f -a  -user hdfs  -a -size +500c
    
    • -newer file1
      查找etc目录下比a文件新的文件
      find /etc -newer a

查找/etc目录下大小大于1m的文件
在这里插入图片描述
查找/etc目录下小于1字节的文件
在这里插入图片描述

对查找到的文件进行操作

  • -print 打印输出
  • -exec 对搜索到的文件执行特定的操作,格式为-exec ‘command’ {} ;
    搜索etc下的文件(非目录),文件名以conf结尾,且大于10k,然后将其删除
    find /etc -name ‘.conf’ -size +10k -exec rm -rf {} ;
    将/var/log/目录下以log结尾的文件,且更改时间在7天以上的删除
    find /var/log/ -name '
    .log’ -mtime + 7 -exec rm -rf {} ;
    搜索etc下的文件(非目录),文件名以conf结尾,且大于10k,将其复制到/root/conf/下
    find /etc -name ‘*.conf’ -size + 10 -exec cp {} /root/conf/ ;
  • -ok
    和exec功能一样,只是每次操作都会给用户提示

逻辑运算符

-o : 或者
-a : 与
-not|!:非

locate命令介绍

  • 文件查找,所属软件包mlocate
  • 不同于find命令是在整块磁盘中搜索,locate命令在数据库文件中查找
  • find是默认全部匹配,locate则是默认部分匹配

updatedb命令

  • 用户更新/var/lib/mlocate/mlocate.db
  • 所使用的配置文件/etc/updatedb.conf
  • 该命令在后台cron计划任务中定期执行

whereis

  • 作用:查找某个命令的二进制程序文件,帮助文档,源代码文件
选项含义
-b只返回二进制文件
-m只返回帮助文档文件
-s只返回源代码文件

which

  • 作用:仅查找二进制程序文件
选项含义
-b只返回二进制文件

各命令使用场景推荐

命令使用场景优缺点
find查找某一类文件,比如文件名部分一致功能强大,速度慢
locate只能查找单个文件功能单一,速度快
whereis查找程序的可执行文件,帮助文档等不常用
which只查找程序的可执行文件常用于查找文件的绝对路径
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值