一.文件搜索命令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. 18-基于双TMS320C6678 DSP的3U VPX的信号处理平台

    基于双TMS320C6678 DSP的3U VPX的信号处理平台 一.板卡概述 板卡由我公司自主研发,基于3U VPX架构,处理板包含两片TI DSP TMS320C6678芯片:一片Xilinx公司 ...

  2. [Luogu2015]二叉苹果树(树形dp)

    [Luogu2015] 二叉苹果树 题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. ...

  3. [php 拓展开发] hello world

    1.下载php源码包 2.在php-7.0.9/ext 下执行 ./ext_skel --extname=hello  3. 4.拓展代码 5. 6.编译 多了分号,出错. 重新编译成功,但是生成的文 ...

  4. BitMap位图

    BitMap位图算法https://blog.csdn.net/varyall/article/details/79662029 常见面试题 题1:在2.5亿个整数找出不重复的整数,内存不足以容纳着2 ...

  5. wangeditor 支持上传视频版

    1.关于使用哪个富文本编辑器. 简单的要求,不要求发布出来的文章排版要求很高.  可用wangediter.(简单,体积小,不可修改上传图片的尺寸大小) 转载 来源: https://blog.csd ...

  6. python的次方操作

    好简单,不需要import任何包 b=a**n就是求a的n次方,如果n=0.5就是开方 如果开方的是负数或者附复数,需要 import math b=math.sqrt(a) 这样

  7. Qt 样式对于QPushbutton 增加 hover press release效果

    按钮的三种状态,未被选中,选中(划过),点击时候的效果 使用setStyleSheet即QSS样式实现. QPushButton *MyBtn = new QPushButton(this); MyB ...

  8. HttpClientUtil工具类封装

    package com.jd.ng.shiro.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; ...

  9. 【leetcode】1028. Recover a Tree From Preorder Traversal

    题目如下: We run a preorder depth first search on the root of a binary tree. At each node in this traver ...

  10. 【面试题】JavaScript

    第一题 合并 const a = { name: "zhangsan", age: 22 } const b = { name: "lisi", age: 55 ...