• linux文件管理 文件搜索


    文件搜索命令find
    'find [搜索范围] [搜索条件]'
    

    搜索文件

    find / -name install.log
    #避免大范围搜索,会非常消耗系统资源
    #find是在系统当中搜索符合条件的文件名。
    如果需要匹配,使用通配符匹配,通配符是完全匹配
    
    'find /root -iname install.log'
    不区分大小写
    'find /root -user root'
    按照所有者搜索
    'find /root -nouser'
    查找没有所有者的文件
    

    通配符

    '*'  匹配任意内容
    '?'  匹配任意一个字符
    '[]' 匹配任意一个中括号内的字符
    
    >> find /root -name "ab[cd]"
    

    按时间查找

    'find /var/log/ -mtime +10'
    #查找10天前修改的文件
    '-10'  10天内修改的文件
    '10' 10天当前修改的文件
    '+10' 10天前修改的文件
    'atime' 文件访问时间
    'ctime' 改变文件属性
    'mtime'修改文件内容
    
    find /etc -size +20k -a -size -50k
    #查找/etc/目录下,大于20KB且小于50KB的文件
    -a and 逻辑与,两个条件都满足
    -o or 逻辑或,两个条件满足一个即可 
    
    find /etc -size +20k -a -size 50k -exec ls lh {} ;
    #exec ls lh {}  ,使用ls lh来处理前面查找出来的文件
    *)只要出现-exec,必须使用{} 来结尾
    -exec command {}  
    *) command命令必须能对文件进行操作处理
    例如
    find /etc -size +20k -a -size 50k -exec rm -rf {} ;
    

    按文件大小搜索

    'find . -size 25k'
    #查找当前目录下大小是25K的文件
    '-25k' 小于25K的文件
    '25K' 等于25K的文件
    '+25K' 大于25K的文件
    
    find . inum 262422
    查找节点i是262422的文件
    

    搜索字符串命令GREP

    grep [选项] 字符串 文件名
    在文件当中匹配符合条件的字符串
    '-i' 忽略大小写
    '-v' 排除指定字符串
    

    find和grep的命令区别

    'find'
    在系统搜索符合条件的文件名,如果需要匹配使用通配符匹配,通配符完全匹配
    'grep'
    在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式时包含匹配
    

    文件搜索命令locate

    'locate 文件名'
    只能搜索文件名
    在后台数据库中按文件名搜索,搜索速度更快
    ​
    /var/lib/mlocate
    #locate命令所搜索的后台数据库
    locate搜索的是/var/lib/mlocate文件数据库(默认更新频率是每天更新一次)
    updatedb
    更新数据库(强制更新/var/lib/mlocate文件数据库)
    

    文件搜索配置文件

    '/etc/updatedb.conf' 配置文件
    'PRUNE_BIND_MOUNTS=yes'
    开启搜索限制
    'PRUNEFS='
    搜索时,不搜索的文件系统
    'PRUNENAMES='
    搜索时,不搜索的文件类型
    'PRUNEPATHS='
    搜索时,不搜索的路径
    PRUNE_BIND_MOUNTS = "yes"
    PRUNEFS ="...."
    PRUNENAMES = ".git .hg .svn"
    PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
    

    命令搜索命令which

    'which command'
    可以看到命令所在的位置,还能看到命令的别名
    [root@ssgao1987 /]# which ls
    alias ls='ls --color=auto'
        /bin/ls
    192:monitor xiaoxiao$ which mv
    /bin/mv
    192:monitor xiaoxiao$ which mvn
    /Users/xiaoxiao/Documents/software/maven/apache-maven-3.2.2/bin/mvn
    192:monitor xiaoxiao$ which java
    /usr/bin/java
    

    命令搜索命令whereis

    'whereis  command'
    说明:找出指定程序的可执行文件,源代码文件以及manpage的路径。
    whereis 只会在标准的Linux目录中进行搜索。
    -b 只搜索可执行文件
    -m 只搜索manpage
    -s 只搜索源代码文件
    -B directory 更改或限定搜索可执行的文件的目录
    -M directory 更改或限定搜索manpage的目录
    

    whereis和which

    1) 找不到cd命令
    应为cd命令是shell自带的命令
    
  • 相关阅读:
    根据JumpServer官方文档搭建服务流程
    Dockerfile常用指令总结(转载)
    高可用集群-lvs
    k8s 基于Kubeadm部署高可用集群
    Docker部署GitLab
    文本处理三剑客-grep
    文件权限
    Docker监控平台
    Redis占用大量内存问题分析
    Annotation
  • 原文地址:https://www.cnblogs.com/ssgao/p/8879408.html
Copyright © 2020-2023  润新知