Linux入门系列详细笔记(四)文件搜索命令

本系列博文是听了课程Linux达人养成计划后的个人学习笔记,较为详细,供大家参考。


Table of Contents

第4章 文件搜索命令

 4.1文件搜索命令locate

 4.2 命令搜索命令

 4.3 文件搜索命令find

4.4 grep命令


第4章 文件搜索命令

 4.1文件搜索命令locate

locate 文件名

  • 在后台数据库中按文件名搜索,搜索速度更快
  • 所搜索的后台数据库为 /var/lib/mlocate
  • updatedb 更新数据库(正常情况下数据库一天更新一次)

配置文件:/etc/updatedb.conf  ,在locate中,是按照上述配置文件来搜索的。

PRUNE_BIND_MOUNTS="yes"      开启搜索限制
PRUNEFS=     搜索时,不搜索的文件系统
PRUNENAMES=    搜索时不搜索的文件类型
PRUNEPATHS=     搜索时不搜索的路径

 4.2 命令搜索命令

  •    whereis  命令名

例如:

  1. 搜索命令所在的路径及帮助文档所在位置
  2. 不能操作linux自带的shell命令,如 cd

选项:
-b 只查找可执行文件
-m 只查找帮助文档

  • which 命令

例如:

  1. 能查看命令的可执行文件路径以及别名
  2. 不能操作linux自带的shell命令,如 cd
  • echo $PATH
  1. 环境变量都用:分隔
  2. PATH定义系统搜索命令的路径(或绝对路径执行)

 4.3 文件搜索命令find

可以看出,以上locate、whereis、which 比较局限。locate用来搜索文件, whereis 和 which 用来搜索系统命令。那么find的功能非常的强大,下面我们来详细学习。

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

find / - name install.log 从根目录开始,搜索文件名为install.log的文件
尽可能避免大范围搜索,会非常消耗系统资源

  • 可以使用的通配符

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

-iname 不区分大小写
-user 按照所有者搜索
-nouser 查找所有没有所有者的文件

内核产生的文件可能没有所有者,外来文件可能没有所有者。剩下的Linux中的所有文件都应该有所有者!

  • 根据时间查找

-mtime +10 查找10天之前的修改文件(也可以是创建时间)
-mtime 10 查找10天前当天的修改文件
-mtime -10 查找10天内的修改文件
-atime 天数 文件访问时间(天数同上)
-ctime 天数 改变文件属性时间(天数同上)

  • 根据文件大小查找

-size +10k 查找大于10k的文件(小写k)
-size 10M 查找等于10M的文件(大写M)
-size -10G 查找小于10G的文件(大写G)
-size 10 不加单位表示搜索10个扇区,一个扇区512B(不推荐使用)

  • 根据i节点号查询

ls -i 可以查看i节点
-inum 262422 查找i节点是162422的文件

  • 组合查询

-a 逻辑与
-o 逻辑或
-exec/-ok 命令 {} \; 对搜索结果进行操作
例:
find /etc -size +20k -a -mtime -10 -exec ls -lh {} \;
查找大于20k并且在10天之内操作过的文件,将结果展示出来;

4.4 grep命令

grep [选项] 字符串 文件名

在文件当中匹配符合条件的字符串
选项:
-i 忽略大小写
-v 排除制定字符串

  • 与find命令的区别

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

啊啊啊,学习了好久啊,码字码了好久……吐血^ ^,希望对和我一样的初学者有所帮助,写这个学习笔记也是为了能够对这些linux命令更加的熟练。加油加油~

猜你喜欢

转载自blog.csdn.net/sunshine_lyn/article/details/81706110