文件搜索命令 locate

locate 【文件名】
在后台数据库中按文件名搜索,搜索速度更快,耗费资源少

更新数据库 updatedb

/var/lib/mlocate #locate命令所搜索的后台数据库 该数据库默认是一天更新一次

查看locate的搜索配置

cat /etc/updatedb.conf
locate的搜索配置
第一句表示是否开启搜索限制
第二句,不搜索的文件系统
第三句,不搜索的文件类型
第四句,不搜索的路径
该文件也被whereis和which命令遵守

命令的搜索命令 whereis和which

whereis 【命令名】
搜索命令所在路径以及帮助文档所在的位置
-b 只查找可执行文件
-m 只查找帮助文件

which 【命令名】
也搜索该命令的别名

查看环境变量

echo $PATH

文件搜索命令 find

遍历所有文件,耗费资源
find 【搜索范围】 【搜索条件】

find / -name install.log

搜索文件的范围要适当,不然会加大消耗。文件名一致的才能搜索到。

通配符

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

find /root -iname install.log

-iname 不区分大小写
-uer root 所有者是root的文件
-nouser 查找没有所有者的文件
proc sys 内的文件可能没有所有者,或者外来数据是没有所有者
其它的情况可以视为垃圾文件,建议清除。

find /var/log/ -mtime +10

-10 十天内
10 前第十天当天
+10 十天前
-atime 文件访问时间
-ctime 改写文件属性内容
-mtime 修改文件内容

find /root/ -size 25k

25k 大小为25k
-25k 小于25k
+25 大于25k
兆字节“M”

find . -inum 26234

查找i节点的文件

find . -size +20k -a -50k

查找当前目录下大于20k小于50k的文件
-a and 逻辑与
-o or 逻辑或

处理多条命令 exec

-exec 【命令】{} \;
注意,花括号后面有一个空格。
用于多条命令串行执行。
find . -size +20k -a -50k -exec ls -lh {} \;
查找当前目录下大于20k小于50k的文件,并显示详细信息

字符串搜索命令 grep

grep 【选项】 字符串 文件名
-i 忽略大小写
-v 排除指定字符串
显示字符串所在的行数