zoukankan      html  css  js  c++  java
  • LInux 文件搜索命令

    文件搜索命令  locate

    优点:搜索速度很快 缺点: 只能搜索文件名(速度快 耗费资源少)

    localte  文件名

    (在后台数据库中按文件名 搜索,搜索速度快  localte 命令并不是在系统中去搜索 )

    而是会在 /var/lib/mlocate  后台数据库  (#locate 命令所搜索的后台数据库 该数据库是一天一更新)

    updatedb  可以立刻更新数据库

    locate 搜索时: 按照配置文件来进行搜索  /etc/updatedb.conf 配置文件

    # 开启搜索限制 prune_bind_mounts = "yes"

    # 搜索时不搜索的文件系统  prunenames =

    #搜索时不搜索的路径: prunepaths

    命令搜索命令 whereis 与which 

    whereis # 搜索命令所在路径及帮助文档所在位置    (whatis  whoami)

    选项 -b : 只查看可执行文件 -m  只查看帮助文档所在位置

    外来命令可以通过  whereis 和which找到

    which 会把别名完整名打印出来    可以看一下他的使用

    (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

    这个是什么?  在linux中要想要执行脚本,执行文件或者执行命令,只有一种方法那就是使用绝对路径,

    有了一个$path 的环境变量 该路径 使用 : 分割的不同路径

    PATH环境变量: 定义的是系统搜索命令的路径

    文件搜索命令 find

    locate 命令只能搜文件名 whereis和which命令只能搜命令所在路径

    find命令

    find  [搜索范围]  [搜索条件]

    #搜索文件

    find / -name install.log

    #避免大范围的搜索,会非常耗费系统资源

    #find 是在系统当中搜索符合条件的文件名。使用通配符匹配,通配符是完全匹配

    find  是完全匹配

    在linux 中的通配符  : * 匹配任意内容 ? 匹配任意一个字符 [] 匹配中括号内的字符

    find /root -name "install.log*"

    find /root -name "ab[cd]"

    find /root -name "*[ab]"   find 文件名 无通配符完全匹配,想要模糊查询,必须加通配符

    find /root -iname install.log  不区分大小写

    find /root -user root  #按照所有者来进行搜索

    find /root -nouser #查找没有所有者的文件

    find /root -nouser  很常用    一旦搜索到,没有所有者的文件是垃圾文件 (内核产生的文件有可能没有所有者,proc,sys 是正常的  外来文件 可能没有所有者  )

    find  /var/log -mtime +10

    #查找10天前修改的文件

    -10 10天内修改的文件

    10 10天当天修改的文件

    +10 10天前修改的文件

    atime 文件访问时间

    ctime 改变文件属性

    mtime 改变文件内容

    按照文件大小搜索  :

    find [文件路径] -size 25k

    find [文件路径] -size 25M 小写的 k 大写的M

    按照 inode 来搜索文件

    find [文件路径] -inum 262422 # 查找i节点是262422 的文件

    find 的复杂操作 

    find /etc -size +20k -a -size -50k

    # 查找 /etc 目录下,大于20KB并且小于50KB的文件

    -a   and  逻辑与   两个条件都满足

    -o   or 逻辑或  两个条件满足一个就可以

    find /etc/ -size +20k -a -size -50k -exec ls -lh {} ;

    {}  放置的是查找结果

    # 查找/etc 目录下,大于20KB并且小于50kb的文件,并显示详细信息

    #-exec / -ok 命令{} ; 对搜素结果执行操作

    find /root -inum 790222 -exec rm -rf {} ;

    找到 790222 节点 并删除节点   并发查找

    字符串搜索命令 grep

    grep [选项] 字符串 文件名

    # 在文件当中 匹配符合条件的字符串

    选项 :

    -i  忽略大小写

    -v 排除指定字符串

    find命令和grep命令的区别

    find 命令: 在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

    grep命名: 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

  • 相关阅读:
    UVA 12657 Boxes in a Line 双向链表模拟
    C语言单片和C#语言服务器端DES及3DES加密的实现
    关于TcpClient,Socket连接超时的几种处理方法
    拿来参考的学习计划
    faire la course
    今日法语2
    炸鱼
    今日法语
    今日疑问
    下周想做的菜
  • 原文地址:https://www.cnblogs.com/yangyongqian/p/5167432.html
Copyright © 2011-2022 走看看