zoukankan      html  css  js  c++  java
  • Linux上天之路(十五)之文件查找

    主要内容

    • 精确查找

    • 模糊查找

    1. 精确查找

    find - search for files in a directory hierarchy 递归地在层次目录中处理文件

    查找方式:

    按文件属性查找
    按文件类型查找
    按文件大小查找
    按时间查找
    

    语法

    find path -option 动作

    option

    • 按文件属性查找
    -name 按文件名查找,区分大小写
    
    -iname 按文件名查找,不区分大小写
    
    -empty 查找空文件或目录
    
    -maxdepth 查找最大深度 /第一级 /var/tmp/ 就是三级 / var tmp
    
    -mindepth 从哪个深度开始查找 /var 第二级
    
    -perm 文件权限 比如4777
    
    -user 文件或文件夹所有者
    
    -uid 文件或文件夹所有者UID
    
    -group 文件或文件夹属组
    
    -gid 文件或文件夹数组GID
    
    -nouser 没有所有者的文件或文件夹 比用用户被删了
    
    -nogroup 没有属组的文件或文件夹
    
    -links 文件或文件夹硬链接数量
    example:
    查找名为passwd的文件或文件夹              [root@baism ~]# find / -name passwd
    查找名为passwd的文件或文件夹,忽略大小写    [root@baism ~]# find  / -iname passwd
    查找空文件或目录                          [root@baism ~]# find /  -empty
    查找深度2层                               [root@baism ~]# find /  -maxdepth 3 -perm 4777     包括根三层
    从第二层开始查询                          [root@baism ~]# find /  -mindepth 2 -perm 4777
    查找所有者为baism的文件或文件夹            [root@baism ~]# find  / -user baism      [root@baism ~]# find / -uid 1000
    查找属组为baism的文件和文件夹              [root@baism ~]# find / -group baism      [root@baism ~]# find / -gid 1000
    查找权限为4777的文件                      [root@baism ~]# find / -perm 4777
    查找没有所有者的文件                       [root@baism ~]# find / -nouser
    查找没有属组的文件                        [root@baism ~]# find / -nogroup
    找出硬链接大于2的文件                     [root@baism ~]# find / -links +2 -type f
    多目录查询                               [root@baism ~]# find /etc /home -user baism
    • 按文件类型查找
    f 普通文件
    
    d 目录文件
    
    l 符号链接文件
    
    b 块设备 文件
    
    c 字符设备文件
    
    p 管道文件
    
    s 套接字文件
    
    example
    查找文件类型为管道文件的                    [root@baism ~]# find / -type p
    
    • 按文件大小查找
    +大于
    -小于
    N 等于
    c 字节
    k KB
    M MB
    G GB
    
    example
    查找大于100M的文件  [root@baism ~]# find / -size +100M
    查找小于1k的文件  [root@baism ~]# find / -size -1k
    查找大小为0c的文件  [root@baism ~]# find / -size 0c
    
    • 按时间查找
    +n 是比 n 大,
    
    -n 是比 n 小,
    
    n 正好是 n 。
    
    按时间(天)
    
    mtime修改时间
    
    atime 访问时间
    
    ctime 创建时间
    
    找出一天以内修改过的文件      -mtime       [root@baism ~]# find -mtime -1 -type f
    找出一天以前修改过的文件                   [root@baism ~]# find -mtime +1 -type f
    找出一天以内访问过的文件      -atime       [root@baism ~]# find -atime -1 -type f
    找出一天以前访问过的文件                   [root@baism ~]# find -atime +1 -type f
    找出一天以内创建的文件        -ctime       [root@baism ~]# find -ctime -1 -type f
    找出一天以前创建的文件                     [root@baism ~]# find -ctime +1 -type f
    
    • 按时间(分钟)
    -mmin 修改时间
    
    -amin 访问时间
    找出十分钟内访问过的文件   -amin      [root@baism ~]# find / -amin -10 -type f
    找出10分钟内修改过的文件   -mmin       [root@baism ~]# find / -mmin -10 -type f
    • 执行命令
    -print 打印输出
    
    -ls 详细列出查找文件信息 类似于ls -l
    
    -delete 删除找到的文件
    
    -fls /PATH/file 把查找到的所有文件的长格式信息保存至指定文件中;
    
    -ok COMMAND {} ; 对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认;
    
    -exec COMMAND {} ; 对查找到的每个文件执行由COMMAND表示的命令;
    
    [root@baism ~]# find / -perm 4777 -ls
    [root@baism ~]# find / -perm 4777 -delete
    [root@baism ~]# find / -user baism -fls /tmp/text
    [root@baism ~]# find / -perm 4777 -ok rm -rf {} ;
    [root@baism ~]# find / -perm 4777 -exec rm -rf {} ;
    

    2. 模糊查找

    locate模糊匹配

    locate:模糊查找命令,查找的是linux系统每天特点时间自动索引备份到系统数据库中的文件。

    命令语法:locate [OPTION]… PATTERN…

    -i 不区分大小写

    优点:查找文件速度快
    locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。
    缺点:查找到的结果不是实时结果(必要时,可手动执行updatedb命令索引文件到数据库,但是相当耗时。)
    为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
    

     

  • 相关阅读:
    【luogu】 P1433 吃奶酪
    【noip 2016】 组合数问题(problem)
    【清北学堂】 死亡(death)
    【noip 2004】 合并果子
    微信小程序:每个邮箱仅能申请一个小程序
    Babel-polyfill 的作用
    react.js中模拟事件总线,子组件调用父组件时,发挥作用
    多行文本溢出显示省略号(…) text-overflow: ellipsis ------------- webkit-line-clamp 多行文字溢出...
    es6-class
    ES6--promise
  • 原文地址:https://www.cnblogs.com/zhangyafei/p/11581696.html
Copyright © 2011-2022 走看看