Linux文件搜索命令
文件搜索命令 locate
locate 【文件名】
在后台数据库中按文件名搜索,搜索速度更快,耗费资源少
更新数据库 updatedb
/var/lib/mlocate #locate命令所搜索的后台数据库 该数据库默认是一天更新一次
查看locate的搜索配置
cat /etc/updatedb.conf
第一句表示是否开启搜索限制
第二句,不搜索的文件系统
第三句,不搜索的文件类型
第四句,不搜索的路径
该文件也被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 排除指定字符串
显示字符串所在的行数