一.文件搜索命令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. 机器学习:数据预处理之独热编码(One-Hot)

    前言 ———————————————————————————————————————— 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等.这些特征值并不是连续的 ...

  2. 转载----C/C++ 中 const 修饰符用法总结

    感谢原创作者,写的好详细.不忍错过,所以转载过来了... 原文地址: https://www.cnblogs.com/icemoon1987/p/3320326.html 在这篇文章中,我总结了一些C ...

  3. Microsoft Visual Studio 2013 的安装及单元测试

    题目:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂. 安装过程: 1.下 ...

  4. JAVA实验报告三:敏捷开发与XP实践

    实验内容 1. XP基础 2. XP核心实践 3. 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法应用到软件的开发.运营和维护上的过程.软件工程包括下列领域:软件需 ...

  5. 20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结

    20172313『Java程序设计』课程结对编程练习_四则运算第二周阶段总结 结对伙伴 20172326康皓越 博客地址(http://www.cnblogs.com/326477465-a/p/90 ...

  6. Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks dp+矩阵加速

    题目链接: http://codeforces.com/problemset/problem/621/E E. Wet Shark and Blocks time limit per test2 se ...

  7. 论文《Network in Network》笔记

    论文:Lin M, Chen Q, Yan S. Network In Network[J]. Computer Science, 2013. 参考:关于CNN中1×1卷积核和Network in N ...

  8. 关于mybatis的思考(1)——mybatis的使用实例

    架构分析 MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索.MyBatis 可以使用简 ...

  9. Eclipse下高亮显示Freemarker文件

    让eclipse高亮显示freemarker文件有两种方式,一种是安装JBoss的插件,一种是用JSP编辑器打开freemarker的文件.我使用第二种方式来完成. 打开eclipse,点击windo ...

  10. LeetCode题解:(114) Flatten Binary Tree to Linked List

    题目说明 Given a binary tree, flatten it to a linked list in-place. For example, Given 1 / \ 2 5 / \ \ 3 ...