文件搜索除了find还有几个命令
find是在你需要索引的范围查找,是在硬盘查找,速度太慢
有个快速查找命令
locate:
命令所在路径:/usr/bin/locate
执行权限:所用用户
功能描述:在文件资料库中查找文件
范例:$local init
而locate是在文件资料库中查找,文件资料库会定期更新,找不是在硬盘找,而是在资料库中查找。速度非常快。
(这里我想到之前学过的I/O复用,select和epoll的使用效率,当使用select时和find一样,当你朋友来你宿舍找你并不知道你住在哪里,这时候宿舍阿姨就会带你到宿舍区一个 房间一个房间查找。而epoll和locate一样,宿舍大妈先有一个记录本记录了同学住的房间号,然后直接在记录本上查找号,便可直接找到同学)
locate文件资料库存放地址:
但是如果没有更新的话,用locate不能查到
新建一个文件hpyhaha,由于资料库没有更新,所以用locate不能查到,但是用find便可以查到
不过我们可以用updatedb更新数据库
但是如果新建一个文件放在tmp目录下,即使用updatedb后也无法找到文件,因为不在locate范围内,所以locate经常用于系统文件的查找。
locate -i 文件名:
-i:表示不区分大小写
which:
命令所在路径:/usr/bin/which
执行权限:所有用户
功能描述:搜索命令所在目录及别名信息
范例:$ which ls
whereis:
命令所在路径:/usr/bin/whereis
执行权限:所有用户
功能描述:搜索命令所在目录及帮助文档路径
范例:$whereis ls
(帮助文档路径文档中1表示命令的帮助,5表示配置文档的帮助)
grep:
命令所在路径:/bin/grep
执行权限:所有用户
语法:grep -iv [指定字串][文件]
功能描述:在文件中搜寻字串匹配的并行输出
-i 不区分大小写
-v 排除指定字串
范例:$ grep stop /etc/init/acpid.conf
查找/etc/init/acpid.conf文件里面的stop
grep -v :排除指定字串
比如排除注释行
范例:$ grep -v ^# /etc/init/acpid.conf
(^符号表示从头开始删除#号行,避免注释行在中间,误删有效行)
(在文件内容里面查找)