一.文件搜索命令locate

locate 文件名

在后台数据库中按文件名搜索,搜索速度最快

/var/lib/mlocate

#locate命令所搜索的后台数据库(数据库不会实时刷新,所以新建的文件马上使用localte命令是无法搜索到的,更新频率大概一天一次)

updatedb

#更新数据库(更新后就可以使用locate命令进行搜索了)

  • 缺点

1)只能搜索文件名

2)存在不搜索的文件或目录(可以使用vi /etc/updatedb.conf命令查看不搜索的部分有哪些,如图中不搜索的部分为yes那一行下面的所有内容,换句话说,打比方你在/tmp目录下创建了个文件,那么即使你updatedb后也是无法搜索到那个文件的)

二.命令搜索命令whereis与which

whereis 命令名

#搜索命令所在路径及帮助文档所在位置

选项:

-b:只查找可执行文件

-m:只查找帮助文件

限制条件:

只能搜索系统命令,不能搜索普通文件

which 命令

#搜索命令所在路径及别名

不是所有命令都有别名,所以使用which有时候会不显示别名

  • 注意事项:

shell自带的内置命令使用which或whereis是无法查找到可执行文件的例如cd命令,只有外部命令才可以使用which和whereis来进行查找,之所以pwd、ls这种命令可以直接使用是因为linux自动为这些系统命令配置了环境变量。如果是我们自己写的程序如果想不打绝对路径就运行的话需要自己手动配置环境变量,就像windows那样

可以使用命令”echo $PATH”来查看环境变量

三.字符搜索命令find

find [搜索范围] [搜索条件]

#搜索文件

find / install.log    #在/目录下遍历查找install.log文件

#避免大范围搜索,会非常消耗系统资源

选项

描述

例子

-name 按文件名搜索(区分大小写) find /root –name install.log
-iname 按文件名搜索(不区分大小写) find /root –iname install.log
-user 按所有者搜索(搜索属于所有者的所有文件) find /root –user root
-nouser 查找没有所有者的文件(搜索当前没有所有者的所有文件)
注意:
1./sys和/proc两个目录中如果存在没有所有者的文件请不要手动清除,因为他可能是内核直接产生的文件,内核直接产生的文件不一定会存在所有者
2.外来文件,比如拿U盘从windows中copy到linux中的
3.除了以上两种情况,其他没有所有者的文件可以全部清除,基本都是垃圾文件
find /root –nouser
-mtime 按修改时间查询文件
atime        文件访问的时间
ctime        修改文件属性的时间
mtime       修改文件内容的时间
find /var/log/ –mtime +10
#查找10天前修改的文件
-10         10天内修改的文件
10           10天当天修改的文件
+10        10天前修改的文件
-size 按文件大小查询
-a and 逻辑与,两个条件都满足
-o or    逻辑或,两个条件满足一个即可

-exec/-ok 命令 {}\;    对搜索结果执行操作,非常有用
注意事项:
1.也可以按照M字节去查询,但是这里有个注意事项,k是小写M要写大写才可以,这个要严格区分大小写
2.如果不加单位,默认的单位是扇区单位也就是512kb,计算十分麻烦

find . –size 25k
#当前目录查询文件大小是25kb的文件
-25k       小于25kb的文件
  25k       等于25kb的文件
+25k      大于25kb的文件

find /etc –size +20k –a –size –50k
#查找/etc目录下,大于20k并且小鱼50k的文件
find /etc –size -20k –o –size +50k

find /etc –size +20k –a –size –50k –exec ls –lh {} \;
#超找/etc目录下,大于20k小鱼50k的文件,并显示详细信息

-inum 按i节点查询文件(也就是ID号) find . –inum 262422
#查找节点是26244的文件
     

find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完美匹配,相当于是模糊查询例如:

通配符

描述

例子

* 匹配任意内容 find /root –name “install.log*”(之所以加了引号是有可能不会识别通配符)
? 匹配任意一个字符 find /root –name “ab?”
[] 匹配任意一个中括号内的字符 find /root –name “ab[cd]”

四.字符串搜索命令grep

grep [选项]  字符串 文件名

#在文件当中匹配符合条件的字符串

选项

说明

例子

    grep “size” test.txt
在test.台下听众搜索包含size这个字符串的行
-i 忽略大小写 grep –i “size” test.txt
在test.台下听众搜索包含size这个字符串的行,不区分大小写
-v 排除指定字符串 grep –v “size” test.txt
在test.台下听众搜索包不含size这个字符串的行

五.find命令与grep命令的区别

find:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是万全匹配

grep:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式包时包含匹配

五、Linux学习之文件搜索命令的更多相关文章

  1. Linux学习日志--文件搜索命令

    开头总结: 学习了Linux中的文件搜索命令find和locate,系统搜索命令whereis 和which ,字符串搜索命令grep,find和locate的差别和使用方法格式,什么是path环境变 ...

  2. Linux学习之文件搜索命令

    一.文件搜索命令locate locate 文件名 在后台数据库中按文件名搜索,搜索速度最快 /var/lib/mlocate #locate命令所搜索的后台数据库(数据库不会实时刷新,所以新建的文件 ...

  3. Linux 学习 (三) 文件搜索命令

    Linux达人养成计划 I 学习笔记 locate 文件名 搜索速度比较快 只能根据文件名搜索 搜索的是保存在 /var/lib/mlocate 的数据库(每天更新一次) 新建文件需要执行 updat ...

  4. Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)

     1.文件搜索命令:locate [文件名]    在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少    例子:locate test.txt,就会显示文件名包含 test.txt的所 ...

  5. [Linux] 013 其他文件搜索命令

    1. 文件搜索命令:locate 命令名称:locate 命令所在路径:/bin/locate 执行权限:所有用户 语法:locate 文件名 功能描述:在文件资料库中查找文件 范例: $ locat ...

  6. Linux 学习 (二) 文件处理命令

    Linux达人养成计划 I 学习笔记 ls [选项] [文件或目录] -a: 显示所有文件,包括隐藏文件 -l: 显示详细信息 -d: 查看目录属性 -h: 人性化显示文件大小 -i: 显示inode ...

  7. linux 学习2 文件处理命令

    ____命令格式与目录处理命令 ____目录处理命令 ____文件处理命令 ____链接命令 ls list 菜单 命令 [-选项][参数] 选项:调整功能,多个选项可以写在一起,不分顺序. 简化选项 ...

  8. linux中find文件搜索命令

    find 解释 命令名称:find 命令所在路径:/bin/find 执行权限:所有用户 功能描述:文件搜索 语法 find [搜索范围] [匹配条件] 匹配条件: -name 文件名(区分大小写) ...

  9. linux笔记_文件搜索命令

    一.locate命令 locate命令属于mlocate包,如果执行locate filename提示命令未找到执行安装mlocate包 # yum -y install mlocate 安装后执行l ...

随机推荐

  1. 使用Python批量修改数据库执行Sql文件

    由于上篇文章中批量修改了文件,有的时候数据库也需要批量修改一下,之前的做法是使用宝塔的phpMyAdmin导出一个已经修改好了的sql文件,然后依次去其他数据库里导入,效率不说极低,也算低了,且都是些 ...

  2. oozie-ext

    安装oozie的时候需要ext的包支持,网站上找了一遍不是没有就是这个csdn下载还需要币,麻蛋...下面给出这个链接,在百度云上,如果失效了,在评论区或者给我留言,再发,一下是ext2.2.zip ...

  3. unload没有用

    今天下午测试了unload这个事件包括beforeunload <script type="text/javascript"> window.addEventListe ...

  4. Scrum立会报告+燃尽图(Final阶段第五次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2484 项目地址:https://coding.net/u/wuyy694 ...

  5. 冲刺One之站立会议2

    在确定了总体目标之后,我们先决定了实现的具体功能,包括一个登陆界面,一个聊天室的主界面和服务器端的内容.我们今天完成了一小部分内容,把每个内容的主体框架搭建了起来. 效果如下图所示: 燃尽图2

  6. servlet的方法解析

    一般来说servlet继承了HttpServlet,我们可以覆盖某些方法来实现自己的功能. Init()和Init(ServletConfig config),我们一般只需覆盖后者,因为这个可以从se ...

  7. WebGL学习笔记七点一

    第六章讲的是一些GL的一些语法,前面已经涉及,学习时直接跳过,来看第七章,第七章是真正意义的三维立体的出现,其实图形绘制方法是差不多的,就是Z坐标此时不再为0,所以很容易能构造出一些立体图形,但是立体 ...

  8. css3学习笔记一

    首先界面是二维的但也可以有三维的效果.先了解浏览器兼容性问题,火狐加前缀(-moz-)IE加(-MF-)谷歌加(-webkit),简单介绍css3的几个属性. 对于背景来说如果是单纯着一种颜色可以会单 ...

  9. 1001.A+B Format (20) 解题

    代码入口(https://github.com/NSDie/object-oriented) 这题的解题思路我有两个: 第一个是两个数字相加然后判断位数,因为题目限制了范围1000000的绝对值以内嘛 ...

  10. IE显示对象不支持此属性或方法 的解决方法

    用C# 编写的ActiveX控件, 调试时,在世界之窗浏览器里能正确显示,但是不能和JS交互,也没有传说中的错误信息框出现,查了很多文档,后来想问题是不是出在浏览器上,换在IE8里调试,点击交互按钮, ...