查找文件通常使用两个命令:locate 和 find。
locate 命令
$ locate 关键词
locate 命令后跟一个关键词,只要路径中包含此关键词的文件都会被查出来(模糊查询)。
locate 命令实际上只是在 /var/lib/mlocate/mlocate.db 这个数据库中查(这个数据库记录了整个系统上所有文件和目录的路径信息),所以速度很快。但有些新产生的文件可能查不到,因为这个数据库默认每天才更新一次。系统管理员可以使用 updatedb 命令手动更新该数据库。
find 命令
find 命令是 Linux 上的主要查找命令,功能比 locate 强大的多。它直接在硬盘上查找文件,所以精度高,但速度慢。
基本用法:
$ find 要查找的目录 查找条件1 查找条件2 ...
常用查找条件:
-name filename # 指定文件或目录名。注意:find 是精确查询,如果要模糊查询,可以使用通配符。-type 文件类型 # 指定文件类型-size 10b/c/k/M/G # 指定文件大小。b 即 block,通常等于 512 字节。c 指字节-user 用户名 # 指定用户名-group 组名 # 指定组-perm 644 # 查找权限是 644 的文件和目录-perm -644 # 查找权限比 644 更充足的文件或目录-perm -u=s # 查找文件拥有者对文件有 SUID 权限的文件-mtime -3 # 查找从现在开始计算,3天内内容发生过改动的文件-mtime +3 # 查找从现在开始计算,比3天更久的时间内内容发生过改动的文件-mtime 3 # 查找从现在开始计算,三天前那一天的内容发生过改动的文件
-mmin用法和含义与-mtime相似,只是将 “天” 换成 “分钟”。-atime和-amin用法也相似,只是将 “内容发生过改动” 换成 “文件被读取/执行过”。-ctime和-cmin用法也相似,只是将 “内容发生过改动” 换成 “文件属性被修改过”。
