3.3 文件搜索
locate [文件名]
在 /var/lib/mlocate的后台数据库中搜索,搜索新建的文件需要更新数据库:
updatedb
配置文件 /etc/updatedb.conf:
prune_bind_mounts="yes" 开启搜索限制
prunes= 搜索时不搜索文件系统
prunenames= 搜索时不搜索的文件类型
prunepaths= 搜索时不搜索的文件路径
whereis [选项] [系统命令]
选项:
- -b 只查找可执行文件
- -m 只查找帮助文件
which [选项] [系统命令/别名] : 系统命令及其别名搜索
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。 选项:
- -n <文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
- -p <文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
- -w 指定输出时栏位的宽度。
- -V 显示版本信息。
find [搜索范围] [搜索条件] [通配符]
如:
find / -name install.log
#在/根目录下搜索名为install.log的文件
搜索范围:路径
搜索条件:
- -iname 不区分大小写
- -user 按照所有者搜索
- -nouser 查找没有所有者的文件
- -mtime +10 查找10天前修改的文件(-10:10天内;10:10天当天)
- -atime +10 查找10天前访问的文件(-10:10天内;10:10天当天)
- -ctime +10 查找10天前改变属性的文件(-10:10天内;10:10天当天)
- -size 25k 查找文件大小是25kb的文件(+25k:大于25k;-25k:小于25k)
- -inum 262422 查找文件i节点是262422的文件
find /etc -size +20k -a -size -50k -exec ls -lh {} \
以上语句表示,查找/etc/目录下,大于20k且小于50k的文件,并显示详细信息,其中:
- -a and 逻辑与
- -o or 逻辑或
- -exec/-ok 命令 {} \ :对搜索结果进行操作
通配符:
- '*' :匹配任意内容
- '?' :匹配任意一个字符
- '[]' :匹配任意一个括号中的字符
grep [选项]+字符串+文件名:字符串搜索命令
与find不同,grep搜索时进行包含匹配 选项:
- -i 忽略大小写
- -v 排除制定字符串