Linux 如何查找文档文件详情

176 阅读3分钟

简介

        find[查找目录] [查找条件] : 在指定目录下查找文档

        grep [关键词特殊字符] [文件]

find 查找文档

       -name : 根据文档名进行查找

       在根目录下查找文档名后缀为conf结尾的文档(目录+文件)(*通配符匹配任意数量的任意字符) 

       find / -name "*.conf" 

        -type:根据文档类型进行查找

        {f:file 文件 ,d:directory 目录,l:link 链接,b:block 块设备}

        在根目录下查找后缀为.conf的文件

        find / -name "*.conf" -type f

        -size:根据文档大小进行查找

        {+3M:超过3M的文档,-1k:小于1k的文档,+10G:超过10G的文档}   

        在根目录下查找超过10M的文件

        find / -size +10M -type f

        -mtime:根据文档的修改天数查找

        +1 :超过1天

        - 1:低于1天

        在/tmp(存放缓存文件)目录中,查找哪些目录是低于一天没有修改的

        find /tmp -mtime -1 -type d

        -perm:根据权限进行文档查询

        {属主:u,属组:g,其他用户:o,读:r,写:w,可执行:x}

        在/var[存放动态缓存文件]/log[存放日志文件]目录下查找其他用户具有读权限的文件

        find /var/log -perm -o=r -type f

        -user:根据文档属主查询文档

        查找根目录下哪些文档的属主是username[用户名]

        find  / -user username

        -a -o 多条件查询

        {-a:并且 同时满足多个条件}{-o:并且 多个条件只需满足一个}

        查找大于3M的文件

        find /  -size +3M -a -type f

        查找大于10M或小于1k的文档

        find / size +10M -o -1k

grep通过文件内容查找文件

基础用法

  • 搜索文本grep [关键词特殊字符] [file]

    • 在指定的文件中搜索与模式匹配的文本行。如果找到匹配项,则输出这些行。
  • 区分大小写grep "关键词" file

    • 默认情况下,grep 对大小写敏感。
  • 忽略大小写grep -i "关键词" file [常用]

    • 使用 -i 选项使搜索忽略大小写。

常用选项

  • -v:反转匹配,即只显示不匹配模式的行。[常用]
  • -c:计数模式,只输出匹配行的数量,而不是文本本身。
  • -n:显示匹配行及其行号。[常用]
  • -l:只列出包含匹配行的文件名,不显示匹配的文本行。
  • -r 或 --recursive:递归搜索目录中的所有文件。
  • -E:启用扩展正则表达

关键词特殊字符 [常用]

^:一行的开始,查找以ab开头的行,grep "^ab" 文件
:一行的结束,查找以ab结束的行,grep"ab:一行的结束,查找以ab结束的行,grep "ab" 文件
^:匹配空行,查找文件中的空行,grep "^" 文件
#:配置文件中一般代表注释,被注释的配置项不会再生效
查找文件中被注释的内容:grep "^#" 文件

案例  

1.在/etc/passwd 文件中查找带有root关键词的行 grep "root" /etc/passwd                

2.在/etc/passwd 文件中查找不包含root关键词的行 grep -v "root" /etc/passwd

3.在/etc/passwd 文件中查找包含ROOT关键词的行,忽略大小写 grep -i "ROOT" /etc/passwd        

4.在/etc/selinux/config,查找被注释的行 grep "^#" /etc/selinux/config                 

5.在/etc/selinux/config,查找没有被注释的行 grep -v "^#" /etc/selinux/config                 

6.在/etc/selinux/config,查找空行 grep "^$" /etc/selinux/config                

7.在/etc/selinux/config,查找非空行 grep -v "^$" /etc/selinux/config                

联合管道符进行多重筛选(管道符详细内容请观看作者主页{linux扩展}文章)[扩展]

在/etc/selinux/config文件中查找非空的内容并且没有被注释的内容,统计一共有多少行
grep -v "^$" /etc/selinux/config | grep -v "^#" | wc -l