linux文件查找find
一、locate
locate基于数据库索引来查找文件,数据库在开机时一段时间对更新,不会实时更新,数据库存放在(/var/lib/mlocate/mlocate.db),可以用updatedb来手动更新数据库。
优缺点:
- 查找速度快
- 模糊查找
- 非实时查找
- 搜索的是文件的全路径
- 只搜索用户具备读权限和执行权限的目录
locate KEYWORD
选项:
-i:不区分关键字大小写
-n #:打印匹配到的前#行
-r:使用正则表达式
二、find
find查找会实时遍历磁盘,对服务器性能会有很大影响,使用时应该注意服务器的负载
优缺点:
- 查找速度慢,影响性能
- 精确查找
- 实时查找
- 只搜索用户具备读权限和执行权限的目录
find 【查找路径范围】【选项】【查找条件】【处理操作】
查找路径,默认为当前工作路径
1、查找条件
可以指定查找文件的文件名、大小、类型、权限等等指定条件
- --maxdepth #:最大搜索目录深度
- --mindepth #:最小搜索目录深度
- -name:指定文件名
- -iname:忽略文件名大小写
- -inum #:指定inode号
- -samefile FILE:指定和另一个文件相同的inode号,查找一个文件的硬链接
- -links #:指定查找有#个链接数的文件
- -regex "PATTERN":使用正则表达式匹配
- -user USERNAME:查找指定所属者的文件
- -group GROUPNAME:查找指定所属组的文件
- -uid UID:查找指定UID的文件
- -gid GID:查找指定GID的文件
- -nouser:查找没有所属者的文件
- -nogroup:查找没有所属组的文件
- -type:根据文件类型查找
- f:普通文件
- d:目录
- l:符号链接
- s:套接字文件
- b:块文件
- c:字符文件
- p:管道文件
- -empty:查找空文件
- -size:按文件大小查找(c,k,M,G)
- #:(#-1,#]
- -#:[0,#-1]
- +#:(#,+∞)
- -atime:按文件各时间查找(天)
- #:[#,#+1)
- +#:[#+1,∞]
- -#:[0,#)
- -mtime
- -ctime
- -amin:按文件各时间查找(分钟)
- -mmin
- -cmin
- -perm 权限匹配
- MODE 精确匹配
- /MODE ugo是或者的关系
- -MODE ugo是并且的关系,包含关系
- 组合添加查找
- -a:并且
- -o:或者
- -not|!:不是
2、处理操作
对匹配到的文件做相应的操作,默认操作为输出到终端
-print:默认处理,打印到终端
-ls:以长格式列出文件
-delete:删除文件,不提示!
-fls NEWFILE:将长格式的文件列表保存到NEWFILE == -ls >NEWFILE
-ok CMD {} \;:指定处理动作,提示
-exec CMD {} \;:指定处理动作,不提示!
记录于2018.4.12 11:57