1.locate filename
在文件数据库中搜索filename信息,updatedb更新文件数据库
2.find(search for files in a directory hierarchy)
find 查找位置 -条件 条件值 [ -exec 动作 {} \; ]
-name ##按照文件名查找
-user ##按照文件所有人查找
-group ##按照文件所有组查找
-size ##按照文件大小查找
-perm ##按照文件权限查找
-maxdepth ##目录的最大深度查找
-mindepth ##目录的最小深度查找
-a ##相当于条件的连接谓词 and
-o ##相当于条件的连接谓词 or
-not ##相当于条件的连接谓词 not
-type f 文件
d 目录
c 字符设备 ##按照文件的类型查找
b 块设备
s 套节字
l 链接
TEST1:按照文件名查找
find /dir -name filename ##在dir下查找名为filename的文件
实验操作如下:
TEST2:按照所有人或者所有组查找
find /mnt -user student
##查找/mnt下所有人是student的文件
find /mnt -group student
##查找/mnt下所有人是student的文件
find /mnt -user student -o -group student
##查找/mnt下所有人或者所有组是student的文件
find /mnt -user student -a -group student
##查找/mnt下所有人并且所有组是student的文件
find /mnt -user student -a -not -group student
##查找/mnt下所有人是student并且所有组不是student的文件
实验操作如下:
TEST3:按照文件大小查找
1)先在/mnt下建立大小分别为10kb、20kb、30kb的文件:
dd if=/dev/zero of=/mnt/file1 bs=1024 count=10
dd if=/dev/zero of=/mnt/file2 bs=1024 count=20
dd if=/dev/zero of=/mnt/file3 bs=1024 count=30
2)执行命令查找符合相应文件大小的文件:
find /mnt -size 10k
find /mnt -size -10k
find /mnt -size +10k
实验操作如下:
找出用户组mail 拥有的文件,并且将它们放到/root/findresults 目录中
TEST4:按照文件权限查找
模版:
find /dir -perm -xyz ##查找dir目录下至少满足x,y,z一个条件的文件
find /dir -perm /xyz ##查找dir目录下满足x,y,z所有条件的文件
其中,xyz的值可以是4(w),2(r),1(x)
实验操作如下:
TEST5:按照文件类型查找
模版:
find /dir -type option ##在dir目录下查找类型为option的文件
其中,option可以是f(文件)、d(目录)、c(字符设备)、b(块设备)、s(套节字)、l(链接)
实验操作如下:
TEST6:按照文件S所处目录深度查找
find /dir -maxtype x ##在dir目录下查找最大深度为x(数字)的文件
find /dir -mintype x ##在dir目录下查找最小深度为x(数字)的文件
实验操作如下(此实验为结合上面两种查找方式的基础上在加文件名称):
TEST7:按照文件查找条件结束后在执行其他的操作
问题:找出用户组mail 拥有的文件,并且将它们放到/root/findresult 目录中
命令:find / -group mail -exec cp {} -pR /root/findresult \;