Linux⽂件搜索命令
⼜要开始Linux命令了!GoGo
1.locate命令格式
locate ⽂件名  :在后台数据库中按⽂件名搜索,搜索速度更快。  (注意:只能够按照⽂件名搜索)
Q:在这⾥我发现,搜索第⼀个⽂件的时候是可以搜索出来的,但我新建了⼀个⽂件,再搜索就搜索不出来了,这是为什么呢?
A:原来locate命令是从/var/lib/mlocate这个数据库中进⾏搜索的,这样就不⽤遍历操作系统了,所以速度很快,因为这个数据库是⼀天⼀更新,所以刚刚添加的cangls⽂件就不会搜索出来了。
(but)但有的时候我并不想等⼀天之后再搜索到这个⽂件,这时候我可以执⾏updatedb命令进⾏数据库的强制更新,这样就能查询到刚刚创建的⽂件了。
2.搜索命令的命令whereis
1.whereis命令
whereis 命令名  : 搜索命令所在的路径及帮助⽂档所在的位置
选项:
-b:只查可执⾏⽂件
-m:只查帮助⽂件
2.which命令
which 命令名: 它会返回这个命令的别名,还有所在的位置。如果没有别名就直接返回所在的位置
3.whereis和which的区别
whereis可以查到命令的帮助⽂档,⽽which可以查到命令的别名。
3.find命令
find [搜索范围] [搜索条件]
#搜索⽂件
find / -name install.log
# 避免⼤范围搜索,会⾮常耗费系统资源
#find是系统当中搜索符合条件的⽂件名。如果需要匹配,使⽤通配符匹配,通配符是 完全匹配
在根⽬录下搜索⽂件名是anaconda-ks.cfg的⽂件,搜索速度⾮常慢,所以要 避免⼤范围的搜索
1.Linux的通配符
* :匹配任意内容
:匹配任意⼀个字符
[]:匹配任意⼀个中括号内的字符
⽐如我搜索anaconda-ks.cfg时,只能搜索出⼀个⽂件⽽不能搜索出anaconda-ks.cfg.aa,使⽤了通配符之后就能搜出来了。
find /root -iname install.log
#不区分⼤⼩写查询。(Linux是严格区分⼤⼩写)
find /root -user root (查询root⽬录下所有者是root的⽂件)
#按照所有者查询
find /root -nouser
#查没有所有者的⽂件
find /var/log/ -mtime +10
#查10天前修改的⽂件
-10 10天内修改的⽂件
10 10天当天修改的⽂件
+10 10天前修改的⽂件
atime  ⽂件访问时间
ctime  改变⽂件属性
mtime 修改⽂件内容
find . -size 25k
#在当前⽬录查⽂件⼤⼩是25kb的⽂件
-25k ⼩于25kb的⽂件
25k 等于25kb的⽂件
+25 ⼤于25kb的⽂件
find . -inum 262422
#查i节点是262422的⽂件
find /etc -size +20k -a -size -50k
#查/etc/⽬录下,⼤于20kb并且⼩于50kb的⽂件
-a and 逻辑与,两个条件都满⾜
-o or    逻辑或,两个条件满⾜⼀个即可
find /etc -size +20k -a -size -50k -exec ls -lh {} \;
#查/etc/⽬录下,⼤于20kb并且⼩于50kb的⽂件,并显⽰详细信息
#-exec/-ok 命令 {}\;  对搜索结果执⾏操作
例⼦:find /root -inum 262421 -exec rm -rf {} \;  (将查的数据直接删除)
搜索字符串命令grep
grep [选项] 字符串 ⽂件名
#在⽂件当中匹配符合条件的字符串
选项:
-i :忽略⼤⼩写
find查命令的使用-v:排除指定字符串(取反)
Q:find命令与grep命令的区别
A:find命令:在系统当中搜索符合条件的⽂件名,如果需要匹配,使⽤通配符,通配符是完全匹配。
grep命令:在⽂件当中搜索符合条件的字符串,如果需要匹配,使⽤正则表达式进⾏匹配,正则表达式时包含匹配。
5.帮助命令man
man 命令
#获取指定命令的帮助
man ls
#获取ls命令的帮助
man -f 命令 相当于 whatis 命令 6.选项帮助
命令 --help
#获取命令选项的帮助
例如:ls --help
help shell内部命令
#获取shell内部命令的帮助
例如:
whereis cd
#确定是否是shell内部命令
help cd
#获取内部命令帮助

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。