查找locate和find-1
文件的搜索和查找
locate
在数据库里查找,如果数据库未更新可能查找失败,但是对系统资源占用少,适合搜索旧文件
系统开机会自动建立/var/mlocate/mlocate.db
一般用法 locate filename
locate -i 忽略大小写
locate -n N filename 只列举前N个匹配项目
locate -r 使用正则表达式
手动更新数据库命令:
updatedb
实时查找工具
find
默认是递归搜索的,直接进入指定文件夹开始进入所有子目录搜索指定文件
例如搜索etc文件夹下passwd文件
find /etc/ -name passwd
可以指定搜索层级
-maxdepth level 最大搜索目录深度,指定目录为第1级
默认第1层就是指当前层
find /etc/ -maxdepth 1 -name passwd
/etc/passwd
第2层就是
find /etc/ -maxdepth 2 -name passwd
/etc/pam.d/passwd
-mindepth level 最小搜索目录深度
找特定目录下指定第n层的文件
find /data -maxdepth 3 -mindepth 3 -name f1
find -name 是精确搜索如果想扩展搜索可以参考以下
find /data -name “f1”
注意必须加双引号!
find -name 支持glob * ?
find -iname 忽略大小写字母
find -inum 按inode号查找
find /data -inum 69
find -samefile name 相同inode号的文件 就是找硬链接
find -links n 链接数为n的文件
find -regex 支持基本正则表达式
find /data -empty
-user USERNAME:查找属主为指定用户(UID)的文件
-group GRPNAME: 查找属组为指定组(GID)的文件
-uid UserID:查找属主为指定的UID号的文件
-gid GroupID:查找属组为指定的GID号的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型查找:
-type TYPE:
f: 普通文件
d: 目录文件
l: 符号链接文件
s:套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
空文件或目录
-empty
find /app -type d -empty
组合条件:
与: -a
或: -o
非: -not, !
查找data目录下空的但是不能是普通文件的集合
find /data -empty -type f
/data/dd1 这里的dd1是文件夹
查找data目录下非空的普通文件
find /data ! -empty -type f
find -prune 剪切文件
排除目录
查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
find /etc -path ‘/etc/sane.d’ -a –prune -o -name “*.conf”
查找/etc/下,除/etc/sane.d和/etc/fonts两个目录的所有.conf后缀的文件
find /etc (–path ‘/etc/sane.d’ –o –path ’/etc/fonts’ )
-a -prune –o -name “*.conf
学员评价