文件的搜索

文件搜索有两种: locatefind

locate

locate是通过文件索引数据库查找的,速度快,但是不具有实时性。

手工更新文件索引数据库可以使用updatedb,之后就可以使用locate filename来查找文件。

updatedb
locate filename

find

find功能十分强大,属于实时查找,相比locate会比较慢,但是拥有更多更强的特性。

NAME
       find - search for files in a directory hierarchy

SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

find命令高频参数:

  • -type: 指定查找的文件类型,如f,d,l
  • -name/-iname: 指定要查找的文件名,支持通配符
  • -perm: 指定要查找的文件的mode
  • -[amc]time: 指定文件的atime,mtime,ctime
  • -exec: 对找出的文件执行外部命令操作

examples: http://www.tecmint.com/35-practical-examples-of-linux-find-command/

几个find的小范例:

find /path/to/dir -samefile /path/to/file      # 找出硬链接
find -type f -perm 0777 -print                 # 找出777权限的文件
find ! -name '*.sh' ! -type d                  # 反向匹配
find -inum number                              # inum用于匹配inode,删除怪异文件名的利器
find -size +5M                                 # 找出大于5M的文件