linux 命令案例学习——文件搜索

时间:2021-10-24 16:32:25

两个搜索文件的工具

  • locate  ——仅仅通过文件名查找文件
  • find     ——依据文件的各种属性在既定目录(包括子目录)里查找

一个通常与文件搜索命令一起使用、处理搜索结果文件列表的命令

  • xargs

 

1 locate

1.1 查找文件名中含有zip的文件名

locate zip

看下结果太吓人了,把所有含有zip的文件都输出来了

linux 命令案例学习——文件搜索

 1.2 文件名中含有zip,并且限定下范围所在目录以bin/结尾

locate /bin/zip

结果

linux 命令案例学习——文件搜索

1.3 文件名中含有zip,并且所在目录中含有usr

locate zip | grep usr

linux 命令案例学习——文件搜索

 

2. find

2.1 test选项

2.1.1 查看目录/usr下文件列表清单的数目

find /usr | wc -l

  • |是管道命令,把|左边的输出作为|右边的输入
  • wc 是"word count"之意,单纯写wc 会统计出行数、字数、字节数;加上-l参数后只统计出行数。

2.1.2 查看目录/usr下类型为目录的文件的数量

find /usr -type d |wc -l

:find支持搜索的文件类型

     b - 块设备文件  c - 字符设备文件  d - 目录  f - 普通文件  l - 符号链接

2.1.3 查看目录/usr下类型为普通文件、名字格式为".so"、大小为1M的文件的数目

find /usr  -type f -name "*.png" -size 1M |wc -l

  • -name "*.png"表示查找的符合.png通配符格式
  • -size是文件的大小:+1M--比1M大    -1M--比1M小    1M--正好为1M

2.1.4下边再列举几条test参数(不全,详见man find)

  • -empty            匹配空文件和空目录
  • -group name    匹配目录名name
  • -user name      匹配文件名name
  • -cmin n           匹配n分钟前改变状态(内容或属性)的文件或目录
  • -mmin n          匹配n分钟前被修改的文件或目录
  • -mtime            匹配n*24小时前被修改的文件或目录
  • perm               匹配访问权限与既定模式匹配的文件或目录。既定模式可以以八进制或符号形式表示

2.2 action选项

2.2.1 查找当前目录下文件名中包含.swp的所有文件并删除

find . -type f -name "*.swp"  -delete

:预定义的find命令操作

  • -delete  删除匹配文件
  • -ls        对匹配文件进行标准化输出其文件名及所需求的其他信息
  • -print    将匹配的文件进行全路径输出(当没有其他具体操作时,默认操作)
  • -quit     一旦匹配成功便退出

 

2.2.2 查找当前目录下含有某个字符串的所有文件名

find .|xargs grep "IBM" 
find .|xargs grep"IBM" -l   #只打印出文件名 

  • xargs是一条Unix和类Unix操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。