文件搜索命令find
1.find /etc -name init
[root@bogon /]# find /etc -name inittab (命令)
/etc/inittab (结果)
在目录/etc中查找文件init
其中为通配符 因此可以使用进行模糊查询
linux中命令区分大小写
find /etc -iname init*
不区分大小写 ignore
2.find / -size +204800
+n 大于 -n小于 n等于
我们这里面有三种指定的方法 +标示大于多少 -号标示小于多少 不写标示等于多少,但是基本上第三个命令很少用,因为不可能你精确的知道文件的大小还去查找…
所以一般情况下都是根据大于多大的文件,或者小于多大的文件进行搜索的 其中一定要注意后面的单位是数据块
1数据块 512字节 0.5K 1MB = 1024KB 也就是1K等于两个数据块,其中数据块也是linux存储的最小的数据单位,所以说使用find -size命令的时候一定要进行数据的换算 如果是在区间中查找的可以在后面使用连接符,
$find /etc -size +163840 -a -size -204800 在etc下查找大于80MB小于100MB的文件
-a 两个条件同时满足 -o 另个条件满足一个就行了
find -type 根据文件类型查找
f文件 d目录 l软连接文件
-inum 根据节点查找
如果知道更精确的文件名 比如说你只到名称为init后面有三个字母的文件名称那么可以直接使用 find /etc -name init???
这是第一个要求大家掌握的字符可以使用 -name严格区分大小写,-iname不区分大小写 可以使用*好来匹配任意字符, 使用?来匹配单个字符但是一定要记住一点就是不要在服务器使用高峰期的时候使用,搜索的范围越小越好,搜索的的条件越精准越好, 找到的速度越快,消耗的资源越少
##locate 文件搜索命令locate 命令名称:locate 命令所在路径:/usr/bin/locate 执行权限:所有用户 语法 locate 文件名 语法描述 :在文件资料库中查找文件 例如: locate inittab
一、LOCATE和FIND相同点
都是用于在数据表文件中查询定位记录指针,即把记录指针定位在满足条件的记录上。特别强调:仅仅是定位记录指针。如要显示定位的记录内容,则需要用DISPLAY命令。
二、LOCATE和FIND的不同点
① LOCATE:顺序查询定位,可以直接利用原数据表进行定位操作;
FIND命令:是索引查询定位,必须首先对原数据表按定位数据所在字段或表达式进行索引,建立相立引文件或打开相应的索引文件、索引标识的前提下才能进行定位操作。
② LOCATE和CONTINUE相配合可以连续查询定位多条记录,
FIND只能查询定位单条记录。
③ LOCATE:用条件表达式的形式来定位,
FIND是用常量、变量或变量组成的表达式的形式来定位
总之和一个软件everything有点类似,他实际上的原理和他不是遍历整个分区,遍历整个硬盘,它是建立了一个文件资料库
,这个文件资料库会定时的更新,它在找的时候并不是遍历整个硬盘
而是在资料库中去寻找
SQL
- 用一条SQL 语句 查询出每门课都大于80 分的学生姓名名称是dateTable
- select distinct name from student where name not in (select distinct name from student where grade<=80)
- select name from student group by name having min(grade)>80
2怎样将上面这张表转化为下面这张表
select year,
(select amount from dateTable m where month=1 and m.year=dateTable.year) as m1,
(select amount from dateTable m where month=2 and m.year=dateTable.year) as m2,
(select amount from dateTable m where month=3 and m.year=dateTable.year) as m3,
(select amount from dateTable m where month=4 and m.year=dateTable.year) as m4
from dateTable group by year