目录
工具(命令)locate
格式:locate 命令
特点:
①基于数据库的查询:查询速度快,不是实际进入目录进行查询,而是直接反馈数据库中的内容。可使用“updatedb”命令来手动更新locate的数据库。
②模糊查询:会将包含有该命令的所有文件路径全部显示出来。
将“-i”选项与locate命令搭配使用是忽略大小写的查询。
“-n”选项与locate命令搭配使用时过滤出查询到的前几行的内容。
find命令
语法格式:
find [dir1 ....] [criteria ...] [action ...]
可选项:
目录名:
[dir1 ...]:使用find命令查找指定目录
指定查询/etc下文件,并给出一共有多少(包含目录):
文件名:
注意:使用名字查询文件时使用“-name”这个选项来进行查询。这个选项延申了unix命令的语法规则
命令:#find /etc -name passwd 此命令属于精确查询
模糊查询使用通配符来完成:(一定要将查询的关键字用单引号框起来)
忽略大小写:(-i)
拥有人和拥有组:
根据文件的拥有人查询文件:(-user)
详细的显示find命令所查询的用户的文件信息:
#find /home -user user4 -ls
根据文件的拥有组查询文件:(-group)
find /home -group user3 -ls
查询拥有人是username并且拥有组是username的文件:
查询拥有人是username或者拥有人是username的文件:(-o)
注意:①若没有添加“\( \)”则输出的内容则有问题的
②执行顺序是:限制行括号内的内容,在执行括号外的内容。
使用用户的UID直接查询也是可以的
查询文件拥有人不是username的:
查询文件拥有为username的且文件名称为file的:
根据文件的类型进行查询:(-type)
文件的类型有:文件(-)、目录(d)、块设备(b)、字符设备(c)、管道(p)、链接文件(l字母)、普通的二进制文件(f)、套接字文件(s)
文件的类型的解释可使用man find命令;文件中查询-type的内容就可以查询到关于文件类型的解释
查询拥有人为user1且文件类型是文件的(-type)
根据文件的权限进行查询:(-perm)permission
一般目录的权限是:755,文件的权限是:644
查询root用户家目录下文件的权限为:755的文件:#find -perm 755 -ls
例子:在/tmp目录下创建两个文件夹 /red和/dir做验证
find命令权限的特殊用法:#find -perm /222 -ls
“/222”匹配的规则是:(拥有人、拥有组、其他人)任何一个人只要有写权限都被匹配。
"/022"匹配的规则是:”0“代表匹配时不关注拥有人,只要拥有组和其他人拥有写权限就匹配。
“-222”匹配的规则是:(拥有人、拥有组、其他人)所有人都要有写权限
“-200”匹配规则是:只要匹配拥有人有写权限的文件
注意:#find -perm -006 -ls 和 #find -perm /006 -ls这两个命令区别:
“-”:代表其他人必须要拥有读权限(r-4)“和”写权限(w-2)
“/”:代表其他人只要有读权限“或者”写权限
根据文件的大小进行查询:(-size)
查找当前目录下,文件大小大于10M的文件:#find -size +10M
查找当前目录下,文件大小小于10M的文件:#find -size -10M
查找当前目录下,文件大小等于10M的文件:#find -size 10M
扩展“xargs”:
例子:如果删除find命令所查询的所有小于或大于10M指定文件,如何删除?
注意:find命令所查询的文件不可以直接使用管道丢给rm命令来删除的。原因是rm命令不能接收stdin(标准输入)。但可以使用“xargs”命令来删除find命令所查询的内容。
使用管道的前提是管道右边的命令可以接收来自左边命令的输出。
根据文件时间戳查询(-time默认为:天)
文件时间戳:
A time:文件最后一次被访问的时间。
M time:文件内容最后一次被修改的时间。【ll 命令显示的文件信息的时间是mtime】
C time:文件状态(属性:大小、权限.....)最后被修改的时间
注意:
查询一天以内(-atime -1)被访问的文件有那些:#find -atime -1
查询10天以前(-mtime +10)被最后一次修改的文件:#find -atime +10
查询第10天(-atime 10)被访问的文件:#find -atime 10
查询640分钟以内(-amin -640)被访问的文件有些:#find -amin -640
查询640分钟以前(-mmin +640)被最后一次修改的文件有些:#find -amin -640
查询第640分钟(-amin 640)被访问的文件有些:#find -amin 640
在find命令查找的基础上继续执行命令:
如:“-ls”:显示find命令查询的文件详细信息
“-exec”:将find命令执行的结果可以继续执行一些操作,无交互直接操作。
“-ok”:将find命令执行的结果可以继续执行一些操作,有交互的过程。
注意:“-exec”和“-ok”命令后面必须有结束符,否则将会报错无法执行
使用find命令查询文件后缀名以”.conf“结尾的文件,并且将这些文件拷贝到当前目录下且文件以”.org“的命名方式结尾:
”-not“选项:非(典型)
任何一个人有的 “非(-not)” 是:所有人都没有执行权限。
find命令的特点:
①实时查询
②当find命令后没有指定查询的内容时,查询的是当前目录下的所有文件信息
③如果没有给匹配标准,就是所有文件都匹配
④对所查询的目录需要有rx权限,否则在查询的过程中会有报错,提示对所查询的目录没有权限