之前所学的grep egrep fgrep 都是用来查找文本中的某个字符匹配的
现在来学一下查找文件命令 locate find
locate
此命令是非实时查找文件,它是根据全系统文件数据库进行查找的,
仅用模糊匹配,非精确查找
locate filename 即可实现查找其它相关文件
但是注意有时候如果系统是刚安装的有可能还没建立此数据库,使用该命令会提示查找不到数据库
不过不用担心使用updatedb即可自动生成数据库,生成数据库的时候有时候会很慢,这个根据用户的
磁盘上所放的东西多少决定的
db库存放在/var/lib/mlocate/mlocate.db
这个特点就是速度快
find命令
特点:实时查找
精确匹配,遍历指定目录中的所有文件完成查找,所以速度慢
支持众多查找标准
用法格式:
find 查找路径 查找标准 查找到以后的处理动作action
查找路径:默认为当前目录
查找标准:默认为指定路径下的所有文件
action :默认为打印到屏幕输出
匹配标准:
-name ‘filename‘ 对文件名作精确匹配
-iname ‘filename‘ 查找文件名,但是忽略大小写
-regex pattern 基于模式正规则表达式进行文件名匹配
-user username 根据属主查找文件
-group groupname 根据属组查找文件
-uid UID 根据UID查找文件
-gid GID 根据GID查找文件
-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件
-type f普通文件 d目录 c字符设备 b块设备 l链接文件 p管道设备 s套接字设备 按类型查找
-size [+|-] #k #m #g 中括号可省略+-表示大于小于#号是数字 按文件大小查找文件
组合条件
-a and 与
-o or 或
-not 非
用法例: find ./ -not -user user2 -a -not -user user1
解释:查找非属主为user2且非属主为user1的文件
此条命令还可以这样写
find ./ -not \( -user user -o -user user1\) 摩根定律你懂得!
-mtime 修改时间
-ctime 改变时间
-atime 访问时间
[+|-] #
-5 表示5天之内
+5 表示5天之前
-mmin 修改分钟
-cmin 改变分钟
-amin 访问分钟
和上边的区别是上方的单位是天,下方的单位是分钟
未完待续