两个搜索文件的工具
- locate ——仅仅通过文件名查找文件
- find ——依据文件的各种属性在既定目录(包括子目录)里查找
一个通常与文件搜索命令一起使用、处理搜索结果文件列表的命令
- xargs
1 locate
1.1 查找文件名中含有zip的文件名
locate zip
看下结果太吓人了,把所有含有zip的文件都输出来了
1.2 文件名中含有zip,并且限定下范围所在目录以bin/结尾
locate /bin/zip
结果
1.3 文件名中含有zip,并且所在目录中含有usr
locate zip | grep usr
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操作系统的常用命令。它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。