文件搜索命令

文件搜索命令

文件搜索命令locate

1
2
3
4
5
6
7
8
locate [文件名]
在后台数据库中按文件名搜索,搜索速度快

/var/lib/mlocate
后台数据库

updatedb
更新数据库

/etc/updatedb.conf配置文件

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

命令搜索命令whereis与which

1
2
3
4
5
6
7
8
9
10
11
whereis [命令名]

- 搜索命令所在路径级帮助文档所在位置

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

which [文件名]

- 搜索命令所在路径及别名

PATH环境变量

定义系统搜索命令的路径

1
2
3
查看当前环境变量

echo $PATH

文件搜索命令find

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

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

1
$find / -name install.log

避免大范围搜索,会非常耗费系统资源
find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配通配符是完全匹配

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

1
$find /var/log/ -mtime +10

查找十天前修改的文件

-10 10天内修改文件
10 10天当天修改的文件
+10 十天前修改的文件

atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

1
$find . -size 25k

查找文件大小是25kb的文件

-25k 小于25k的文件
25k 等于25k的文件
+25k 大于25k的文件

1
$find . -inum 262422

查找i节点是262422的文件

1
$find /etc -size +20k -a -size -50k

查找/etc/目录下,大于20KB并且小于50KB的文件

-a and 逻辑与,两个条件都满足
-o or 逻辑或, 两个条件满足一个即可

1
$find /etc -size +20k -a -size -50k -exec ls  -lh {} \

查找/etc/目录下, 大于20KB并且小于50KB的文件,并显示其详细信息

字符串搜索命令grep

1
grep [选项] 字符串 文件名

在文件当中匹配符合条件的字符串

选项:
-i 忽略大小写
-v 排除指定字符串