linux文件搜索命令

1.文件搜索命令(locate,find,whereis,which,grep)

1>文件搜索命令locate

       用法locate   【文件名】    ---->在后台数据库中按文件名搜索,搜索速度快

    输入locate yum.log会搜索到所有和yum.log相关的文件。
当我们新建一个文件touch locate_test_txt
再次输入locate    locate_test_txt 进行查询时我们查不到文件,这因为locate  是从后台数据库中查找,而后台数据库没填更新一次所以没有查到
       /var/lib/mlocate            #locate命令所搜索的后台数据库
  当我们输入updatedb更新数据库后 ,进行locate查询,,可以搜索到文件。
        
当我们在root的家目录创建了一个 locate_test_txt ,又在 /tmp  下也建立了一个locate_test_txt 之后更新数据库,我们使用locate 命令查询locate_test_txt ,只能搜索到root加目录下的locate_test_txt 。

        这是因为locate搜索是按照/etc/updatedb.conf 配置文件来搜索的
打开/etc/updatedb.conf
 
我们发现里面有四句话,第一句prune_bind_mounts后面的yes表示配置文件筛选规则全部有效,如果是no表示配置文件全部无效
第二句是不搜索的文件系统
第三句是不搜索文件名中不包含.git  .hg  .svn  
第四句是在这些目录下的文件不搜索
因为我们刚才建的文件在/tmp下所以不进行搜索。

2---->搜索命令whereis 和which

   whereis和which是命令搜索命令,是对命令进行搜索
  格式:   whereis  命令名称
  搜索命令所在位置以及帮助文档所在位置                     选项有  -b     只查询可执行文档    -m  只查询帮助文档
  例如我们常用的ls命令
  我们输入whereis ls

会出现/bin/ls 这个是命令所在的位置,后面两个是帮助文档所在的位置

不能查询文件
    格式:which  命令名
    which ls



which 会搜索到命令所在的路径以及命令的别名。

whereis ,which 只能搜索到外部安装的命令,搜索不到shell下的命令(cd等等)。

PATH环境变量:

PATH 定义的是系统搜索命令的路径

当我们输入的命令不在PATH环境下则找不到命令
如果我们自己定义的命令不在PATH环境下,我们需要输入路径才能执行命令

find命令

find 【搜索范围】  【搜索条件】 #搜索文件
find   /    -name   install.log

1.查询会比较慢,因为我们搜索的范围是全局范围,会非常消耗系统资源。

2.find命令是精确查找,在我门的目录下还有install.log.syslog  并没有查到。如果要搜索符合条件的文件名,需要用通配符,通配符是完全匹配。
3.通配符包括: *任何字符,?任意一个字符,【】任意一个括号中的字符

当我们使用通配符时,用双引号。
搜索用户:
find   /root    -user   root 搜索所有者文件
find /root -nouser  查找没有所有者的的文件,linux没有用户的文件可能是垃圾文件,也可能是系统内核文件(sys产生的文件)
按时间搜索:
find /var/log  -mtime +10  查找10天前的日志文件


-10 10天内修改的文件
10 10天当天修改的文件
+10  10天前修改的文件



atime    文件访问时间
ctime     修改文件属性时间
mtime   修改文件内容时间

按文件大小:注意单位  k小写M大写G大写
find   -size   +30k     
查找大于30k的文件

+30 k   大于30 k 文件
30 k   等于30 k的文件
-30k  小于30k的文件



按节点查找:

find  -inum  26334
查找节点为26334的文件

find     /etc  -size   +20k -a   size   -50k
查找/etc目录下  大于20k小于50k的文件
-a  是与   -o是或


find   /etc   -size   + 20k  -a  -size  -50 k   -exec  ls  -lh   {}  \;
查找/etc/目录下,,大于20k小于50k的文件,并显示详细信息    -exec/-ok      命令{}   \;   表示对搜寻结果执行操作


字符串搜索:grep

grep  【选项】  字符串  文件名    在文件当中搜寻指定字符串
-i    忽略大小写
-v    排除指定字符串 
        grep   “size ”   anaconda-ks.cfg       搜索出anaconda-ks.cfg 中有关size的所有字段


grep -v    ”size“   anaconda-ks.cfg                            //搜索出除了size之外的字段









grep和find 的区别:
find : 在文件中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,是完全匹配
grep:在文件当中所搜索指定的字符串,如果需要匹配,使用正则表达式匹配,是包含匹配




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值