目录
(1)查找一天内在etc目录下,以hostn开头被访问过的文件
(1)查找一天内在etc目录下,以host开头被修改过的文件
(2)查找/home目录下的test*开头的文件,并打印出来
(3)查找etc目录下以host开头的文件和目录,并复制到tmp目录下
(4)查找tmp目录下以host开头的文件,并列出文件详细信息
好好学习,天天向上。
1、命令:locate
常用参数:
- -n:指定显示查找到的内容数量;
- -i:不区分大小写;
- -r:使用正则表达式;
快速查找文件或目录。
特性:
- 基于/var/lib/mlocate/mlocate.db数据库查找,不是在系统中查找,而是在数据库中查找;
- locate数据库存储了系统所有文件的名称和绝对路径;
- 新建的文件,立即用locate命令去找是找不到的,因为locate数据库更新不是实时的;
- 删除的文件,立即用locate命令去找还是能找到,还是因为locate数据库更新不是实时的;
- 新建或删除文件或目录,都需要更新一次数据库,更新命令:updatedb;
- 系统重启时,locate数据库会自动更新;
- locate命令无法查询/tmp目录中的文件和目录;
示例
1、查找/etc目录下所有以pas开头的文件
2、新建的文件,立即使用locate是查找不到的
3、新删除的文件,没有更新locate数据库还是能查询到
4、指定显示查找到的内容数量
5、使用正则表达式,查找以auth结尾的文件或目录
6、查找文件或目录时,不区分名字大小写
7、locate无法查询/tmp目录的任何内容
2、命令:find(重点)
在指定目录下查找文件。
常用参数:
-name | 指定文件名 |
-iname | 指定文件名并且忽略大小写 |
-size | 指定文件大小,加号“ + ”大于,减号“ - ”小于 |
-maxdepth | 指定在第几级目录中查找,指定的目录为第一级 |
-type | 指定文件类型 |
-o/ -a / -not | 或 与 非 |
-user | 指定文件属主 |
-group | 指定文件属组 |
-perm | 指定文件权限 |
-exec | 找到文件后的处理动作 -exec:需要执行的shell命令 |
| 找到文件后打印出文件的路径(默认就是这个) |
-delete | 找到文件后删除文件 |
-mtime | 指定修改文件的天数查找,加号“ + ”大于,减号“ - ”小于 |
-atime | 指定访问文件的天数查找,加号“ + ”大于,减号“ - ”小于 |
语法:
find 路径 参数 条件表达式
示例
1、按照指定文件名称查找
(1)在/etc目录下查找 hos 开头的文件和目录
2、按照指定文件大小查找
(1)在/etc目录下查找大于5M的文件和目录
(2)在/etc目录下查找小于5M的文件和目录
3、按照目录最大深度查找
(1)在指定的根目录下的第三级目录中查找te开头的文件
注意:指定的目录为第一级。这里指定目录为根目录,也就是第一级目录是根目录
4、按照文件属主查找。查找属主是testadmin的文件
5、按照文件属组查找。查找属组是wheel的文件
6、按照文件类型查找
系统文件类型:
(1)查找文件(f)类型的文件和目录
(2)查找目录(d)类型的文件
(3)查找设备(b)类型的文件
(4)查找链接(l)类型的文件
(5)查找管道(p)类型的文件
7、按照文件权限查找文件
(1)在root目录下查找权限为755的文件和目录
(2)在root目录下查找权限为644的文件和目录
8、按照访问文件的日期查找文件
(1)查找一天内在etc目录下,以hostn开头被访问过的文件
9、按照修改文件的日期查找文件
(1)查找一天内在etc目录下,以host开头被修改过的文件
10、查找到文件后的处理动作
(1)查找root目录下权限为644的文件,找到后删除
(2)查找/home目录下的test*开头的文件,并打印出来
(3)查找etc目录下以host开头的文件和目录,并复制到tmp目录下
-exec:需要执行的shell命令;
{}:find查找到的文件;
\; :作为find命令的结束标记;