本系列博文是听了课程Linux达人养成计划后的个人学习笔记,较为详细,供大家参考。
Table of Contents
第4章 文件搜索命令
4.1文件搜索命令locate
locate 文件名
- 在后台数据库中按文件名搜索,搜索速度更快
- 所搜索的后台数据库为
/var/lib/mlocate
updatedb
更新数据库(正常情况下数据库一天更新一次)
配置文件:/etc/updatedb.conf ,在locate中,是按照上述配置文件来搜索的。
PRUNE_BIND_MOUNTS="yes"
开启搜索限制PRUNEFS=
搜索时,不搜索的文件系统PRUNENAMES=
搜索时不搜索的文件类型PRUNEPATHS=
搜索时不搜索的路径
4.2 命令搜索命令
- whereis 命令名
例如:
- 搜索命令所在的路径及帮助文档所在位置
- 不能操作linux自带的shell命令,如 cd
选项:-b
只查找可执行文件-m
只查找帮助文档
- which 命令
例如:
- 能查看命令的可执行文件路径以及别名
- 不能操作linux自带的shell命令,如 cd
- echo
$PATH
- 环境变量都用
:
分隔 - 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命令更加的熟练。加油加油~