一下我是学习笔记
文件搜索命令locate
1.locate搜索速度快
2.格式:locate 文件名
3.在后台数据库中按文件名搜索,搜索速度快
4./var/lib/mlocate #locate命令所有搜索的后台数据库(搜索数据库就不用遍历整个操作系统)
5.updatedb (强制马上)更新数据库(mlocate数据库不是实时更新的,一天才更新一次,所有马上建立的新文件夹,是搜索不到的)
因此你想查的话,可以马上更新,然后去查。要么就等第二天去查。
特点:在后台数据库进行搜索,只能按照文件名来搜索,但是很快啊(一般够用了)
命令搜索命令wehreis与which
whereis
搜索命令所载路径及帮助文档所在位置
-b:只查找可执行文件
-m:只查找帮助文件
which
搜索命令所在路径及别名
能看到各种颜色,是因为ls调用了--color别名颜色的选项
1.有的有别名(颜色 ls)-- 外部安装的命令
2.有的没有别名(pwd) --外部安装的命令
3.有的没有找到命令(cd) -- 因为是shell中内置的命令,自带的。
文件搜索命令find
find搜索速度慢,扫描所有的文件名
#搜索文件
格式:find [搜索范围] [搜索条件]
*:匹配任意内容
?:匹配任意一个字符
[]:匹配任意一个中括号内的字符 -- ac[cd] 搜索abc或者abd
#避免大范围搜索。会非常耗费系统资源
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配
find / -name install.log
#不区分大小写
find /root -iname install.log
#按照所有者搜索
find /root -user root
#查找没有所有者的文件
find /root -nouser 搜索当前目录下,没有所有者的文件(就是垃圾文件)但是有些特殊情况:
1.如果是内核产生的,会没有所有者(proc,sys这两个中产生的没有所有者的文件,不要删除)
2.外来文件,比如U盘靠过来的(window中产生的...忽略了所有者的概念)
(find /root -user root)在/root目录下搜索用户为root的文件 (很少用...这个)
#查找10天前修改的文件
find /var/log/ -mtime +10
-10:10天内修改的文件
10:10天当天修改的文件
+10:10天前修改的文件
atime:文件访问时间
ctime:改变文件属性
mtime:修改文件内容
#查找文件带澳是25kb的文件
find . size 25k (“.”代表当前目录)
find . size 25 (没有k代表去找扇区 25*512k)所以一定要加上k k小写,M大写
-25:小于25kb
25:等于25kb
+25:大于25kb
#查找i节点是262422的文件
find . inum 262422
#查找/etc/目录下,大于20kb并且小于50kb的文件
find /etc -size +20k -a -size -50k
-a:and 逻辑与,两个条件都满足
-o: or 逻辑或,两个条件满足一个即可
#查找/etc/目录下,大于20kb并且小于50kb的文件,并显示详细信息
find /etc -size +20k -a -size -50k -exec ls -lh {} \
find /root -inum 262421 -exec rm -rf {} \
#-exec/-ok命令{}\;对搜索结果执行操作
第一条命令的结果给第二条去执行
h是人性化显示
特点:搜索功能很强大,速度比较慢
字符串搜索命令grep
find命令与grep命令的区别
---------------------------------------------------------------------------------------------
/etc/updatedb.conf 配置文件
locate.whereis,witch都会遵守这个配置文件中的筛选规则
PRUNE_BIND_MOUNTS="yes"
#开启搜索限制
#yes=下面所有的规则都生效,no的话表示下面的所有规则都不生效
PRUNEFS =
#搜索时,不搜索的文件系统
PRUNENAMES =
#搜索时,不搜索的文件类型
PRUNEPATHS =
#搜索时,不搜索的路径
----------------------------------
PATH环境变量:定义的事系统搜索命令的路径
要想自己打的命令不写绝对路径,就要在环境变量中先配好这些路径
echo $PATH