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 排除制定字符串

results matching ""

    No results matching ""