博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件查找locate与find
阅读量:6151 次
发布时间:2019-06-21

本文共 2474 字,大约阅读时间需要 8 分钟。

  文件查找的工具

文件查找的工具

 locate :非实时文件查找工具

查询依赖于事先构建的索引数据库: /varlib/mlocatr/mlocate.db

索引数据库是需要手动创建的,用 updatedb 命令实现创建更新,但较耗费系统资源,建议系统空闲时进行
locate的工作特点:

  1. 查找速度快,因为事先已构建索引数据库
  2. 模糊查找
  3. 非实时查找,根据数据库查找的,一般近期创建的文件未更新入数据库
  4. 搜索的是文件全路径
  5. 可能只搜索当前用户具备读取和实行权限的目录

相关选项

locate  -i    不区分大小写        -n    指定显示前几个        -r    使用正则表达式  示例:  locate  conf  搜索名称或路径中带有conf的文件        locate  -r  ‘\.conf$’ 搜索以.conf结尾的文件

  find:实时查找工具

通过扫描指定路径对文件进行查找

工作特点:

  1. 查找速度略慢
  2. 精确查找
  3. 实时查找
  4. 可能只搜索用户具备读取和执行权限的目录

    语法:find /路径 -选项 -处理动作

    路径默认为当前所在路径

查找相关选项:

  1. 按照条件查找

    find /root -user li   查找属主为li的文件     -group li   查找属组为li的文件        -uid 11 查找属主ID为11的文件     -gid 11 查找属组ID为11的文件     -nouser  查找没有属主的文件     -nogroup 查找没有属组的文件
  2. 按文件类型查找

    find /root -type  f  查找文件类型为f,即普通文件的文件  同上b:块设备文件    c:字符设备文件    d:目录文件    l:符号链接文件    s:套接字文件    p:管道文件    -empty 空文件或目录  示例: find /root -type d -empty  查找root下空的目录文件
  3. 按文件大小搜索:

    支持单位: k,m,g

    find /root -size n 搜索大小为n的文件(实际搜索大小为n-1至n大小的文件)                -n 搜索0至n-1大小的文件                  +n 搜索大于n的文件  示例:find /root -size 100m  搜索root下99m到100m的文件
  4. 按时间戳搜索:

    find /root atime n 搜索n+1至n天间被读取过的文件  以天文单位                   -n                   +n             ctime n 搜索n天至n-1天元数据发生过更改的文件                 -n                   +n             mtine n 搜索n天至n-1天内容发生过更改的文件                 -n                   +n  同上       amin  n  以分钟为单位             cmin  n             mmin  n
  5. 按权限搜索:

    find /root -perm 761   精确匹配   属主拥有7或属组拥有6或其他拥有1即匹配           -perm /761  模糊匹配  属主拥有7中任何一项或属组拥有6中任何一项或其他拥有1的权限及匹配           -perm -761  超·精确匹配 必须属主拥有7权限,同时属组拥有6权限,同时其他拥有1权限才匹配
  6. 其他搜索选项;

    -maxdepth n 指定搜索最大深度为n  -mindepth n 指定搜索最小深度为n  -depth  先处理目录内文件,在处理目录  -name 按文件名称搜索  支持通配符  -inum 按inode编号搜索  -samefile data 搜索与data相同inode号的文件 -links n 搜索链接数为n的文件

 可跟多个搜索条件:用-a或-o或-not组合起来

-a 与   -o 或  -not 非   或选项前加!示例 :find /root -name file -o -user root        find /root -name file -a -user root        find /root -name file -not -user root

处理相关动作:

find /root -name data  -ls 类似ls -l命令,显示额外信息                              -delte 删除                              -fls /xx/ 将搜索到的文件长格式信息保存在xx文件中                              -ok 命令 {}/; 也可以接-ok,后面直接跟常用命令,结尾格式要求必须为{}/; {}引用前面搜索到文件的绝对路径 每个文件执行前都会要求用户交互式确认                               -exec 命令 {}/; 同-ok上 非交互式

find处理动作是将前面搜索到的所有文件一次性传输给后面处理命令的,有些命令可能无法处理过多参数,需要用到xargs传输

xargs用法: 参数 |xargs 处理动作
示例

find -type f -name “*.txt” -print0 | xargs -0 rm

xargs传输默认分隔符为空格或回车,文件名可能有空格作为命名引发冲突,此时用到 -print0 | xargs -0 指定分隔符为NUL,此处NUL为空,是十进制的0对应的ascii码中NUL

至此

转载于:https://blog.51cto.com/14322599/2409527

你可能感兴趣的文章
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>
android apk 逆向中常用工具一览
查看>>
MyEclipse 报错 Errors running builder 'JavaScript Validator' on project......
查看>>
Skip List——跳表,一个高效的索引技术
查看>>
Yii2单元测试初探
查看>>
五、字典
查看>>
前端js之JavaScript
查看>>
Log4J日志配置详解
查看>>
实验7 BindService模拟通信
查看>>
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>