查找文件通常使用两个命令:locatefind

locate 命令

  1. $ locate 关键词

locate 命令后跟一个关键词,只要路径中包含此关键词的文件都会被查出来(模糊查询)。

locate 命令实际上只是在 /var/lib/mlocate/mlocate.db 这个数据库中查(这个数据库记录了整个系统上所有文件和目录的路径信息),所以速度很快。但有些新产生的文件可能查不到,因为这个数据库默认每天才更新一次。系统管理员可以使用 updatedb 命令手动更新该数据库。

find 命令

find 命令是 Linux 上的主要查找命令,功能比 locate 强大的多。它直接在硬盘上查找文件,所以精度高,但速度慢。

基本用法:

  1. $ find 要查找的目录 查找条件1 查找条件2 ...

常用查找条件:

  1. -name filename # 指定文件或目录名。注意:find 是精确查询,如果要模糊查询,可以使用通配符。
  2. -type 文件类型 # 指定文件类型
  3. -size 10b/c/k/M/G # 指定文件大小。b 即 block,通常等于 512 字节。c 指字节
  4. -user 用户名 # 指定用户名
  5. -group 组名 # 指定组
  6. -perm 644 # 查找权限是 644 的文件和目录
  7. -perm -644 # 查找权限比 644 更充足的文件或目录
  8. -perm -u=s # 查找文件拥有者对文件有 SUID 权限的文件
  9. -mtime -3 # 查找从现在开始计算,3天内内容发生过改动的文件
  10. -mtime +3 # 查找从现在开始计算,比3天更久的时间内内容发生过改动的文件
  11. -mtime 3 # 查找从现在开始计算,三天前那一天的内容发生过改动的文件
  • -mmin 用法和含义与 -mtime 相似,只是将 “” 换成 “分钟”。
  • -atime-amin 用法也相似,只是将 “内容发生过改动” 换成 “文件被读取/执行过”。
  • -ctime-cmin 用法也相似,只是将 “内容发生过改动” 换成 “文件属性被修改过”。