前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s  链接名 表示创建软链接,不加-s表示创建硬链接;还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令可以改变文件或目录所有者,chgrp命令可以改变文件或目录所属组。但是大家需要注意的是,后面两个命令只能由root用户来完成,而chmod命令除了root用户能完成,还有所更改文件或目录的所有者。那么这篇博客我们将继续介绍Linux命令——文件搜索命令。

1、最强大的搜索命令:find

  首先进行一点说明,find命令是我们在Linux系统中用来进行文件搜索用的最多的命令,功能特别强大。但是我们要说的是尽量少用find命令去执行搜索任务,就算要搜索我们也应该尽量的缩小范围,也不要在服务器使用高峰期进行文件搜索,因为搜索也是很占系统资源的。这就需要我们在进行Linux文件整理的时候,尽量规范化,什么文件放在什么目录下都要有比较好的约定。

  find这个命令如果要完全讲清楚,恐怕得花费很长的时间,而且很多用法我们几乎用不到,所以这里我就不一一介绍此命令的每一种用法了,我会详细介绍几种最常用的用法,大家只需要记住这几种就完全够我们日常使用了。

  ①、命令名称:find

  ②、英文原意:

  ③、命令所在路径:/bin/find

  ④、执行权限:所有用户

  ⑤、功能描述:进行各种花式文件搜索

  ⑥、语法:find【搜索范围】【匹配条件】

  注意:Linux搜索和windows是有明显区别的,Linux严格区分文件大小写。

一、根据 文件或目录名称 搜索

  find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写

  ①、find /etc -name init   (精准搜索,名字必须为 init 才能搜索的到)

  ②、find /etc -iname init   (精准搜索,名字必须为 init或者有字母大写也能搜索的到)

  ③、find /etc -name *init  (模糊搜索,以 init 结尾的文件或目录名)

  ④、find /etc -name init??? (模糊搜索,? 表示单个字符,即搜索到 init___)

  

二、根据 文件大小 搜索

  比如:在根目录下查找大于 100M 的文件

  find / -size +204800

  这里 +n 表示大于,-n 表示小于,n 表示等于

  1 数据块 == 512 字节 ==0.5KB,也就是1KB等于2数据块

  100MB == 102400KB==204800数据块

  

三、根据 所有者和所属组 搜索

  ①、在home目录下查询所属组为 root 的文件

    find /home -group root

  ②、在home目录下查询所有者为 root 的文件

    find /home -user root

  

四、根据 时间属性 搜索

  find 【路径】【选项】【时间】

  选项有下面三种:-amin  访问时间

           -cmin   文件属性被更改

           -mmin  文件内容被修改

  时间:+n,-n,n分别表示超过n分钟,n分钟以内和n分钟

  范例:在 /etc 目录下查找5 分钟内被修改过属性的文件和目录

     find /etc -cmin -5

五、根据 文件类型或i节点 搜索

  -type 根据文件类型查找:f表示文件,d表示目录,l表示软链接

  范例:查找 /home 目录下文件类型是目录的   find /home -type l

  -inum 根据i节点查找

  范例:查找 /tmp 目录下i节点为400342的文件或目录  find /tmp -inum 400342

  

六、组合条件 搜索  

  这里有两个参数:

  ①、-a  表示两个条件同时满足(and)

  ②、-o  表示两个条件满足任意一个即可(or)

  范例:查找/etc目录下大于80MB同时小于100MB的文件

  find /etc -size +163840 -a -size -204800

2、在文件资料库中查找文件命令:locate  

  ①、命令名称:locate

  ②、英文原意:

  ③、命令所在路径:/usr/bin/locate

  ④、执行权限:所有用户

  ⑤、功能描述:在文件资料库中查找文件

  ⑥、语法:locate【文件名】

        -i  不区分大小写

  注意:这里和 find 命令是有区别的,find是全盘检索,而locate 是在文件资料库中进行搜索。所以locate命令的执行要比find命令执行速度快很多。但是这里有个问题,文件资料库是需要不断更新的。我们新创建的文件如果不更新 文件资料库,使用 locate 是查找不到的。

  updatedb  手动更新资料库,但是对于/tmp目录下的新建文件,是更新不到文件资料库的,因为/tmp目录不属于文件资料库的收录范围。 

  

3、搜索命令所在的目录及别名信息:which 

  ①、命令名称:which

  ②、英文原意:

  ③、命令所在路径:/usr/bin/which

  ④、执行权限:所有用户

  ⑤、功能描述:搜索命令所在的目录及别名信息

  ⑥、语法:which【命令】

    范例:查询 ls 命令所在目录以及别名信息

  

4、搜索命令所在的目录及帮助文档路径:whereis

  ①、命令名称:whereis

  ②、英文原意:

  ③、命令所在路径:/usr/bin/whereis

  ④、执行权限:所有用户

  ⑤、功能描述:搜索命令所在的目录及帮助文档路径

  ⑥、语法:whereis【命令】

    范例:查询 ls 命令所在目录以及帮助文档路径

  

5、在文件中搜寻字符串匹配的行并输出:grep

  ①、命令名称:grep

  ②、英文原意:

  ③、命令所在路径:/bin/grep

  ④、执行权限:所有用户

  ⑤、功能描述:在文件中搜寻字符串匹配的行并输出

  ⑥、语法:grep -iv 【指定字符串】【文件】

        -i 不区分大小写

        -v 排除指定字符串

    范例:查找 /root/install.log 文件中包含 mysql 字符串的行,并输出

    grep mysql /root/install.log

  

6、总结

  本篇博客我们介绍了几种文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而locate是在文件资料库中进行搜索,对比find命令搜索速度快很多,但是新创建的文件如果没有收录到文件资料库中,使用locate命令是搜索不到的,再就是/tmp目录是不收录到文件资料库的,也就是说使用locate命令搜索不到在/tmp目录下的文件。

  然后我们介绍搜索命令所在的目录以及别名信息which,搜索命令所在的目录以及帮助文档路径whereis,最后一个命令grep和前面搜索文件或目录命令是不同的,grep是在文件中搜索匹配的字符串,是在文件中进行内容搜索,这个命令后面用到的比较多,大家需要记住用法。

Linux系列教程(六)——Linux常用命令之文件搜索命令的更多相关文章

  1. Linux常用命令之文件搜索命令

    目录 1.最强大的搜索命令:find2.在文件资料库中查找文件命令:locate 一.根据 文件或目录名称 搜索 二.根据 文件大小 搜索 三.根据 所有者和所属组 搜索 四.根据 时间属性 搜索 五 ...

  2. Linux学习笔记(5)Linux常用命令之文件搜索命令

    (1)find find命令用于文件搜索,所在路径/bin/find,其语法格式为: find [搜索范围] [匹配条件] 1)-name:根据文件名搜索,如搜索/etc下的init文件 [root@ ...

  3. linux常用命令:3文件搜索命令

    文件搜索命令 1. 命令名:find 命令所在路径:/bin/find 执行权限:所有用户 语法:find  [搜索范围]  [匹配条件] 功能描述:文件搜索 文件搜索类型 通过文件名搜索 -name ...

  4. Linux常用命令3 文件搜索命令

    文件搜索非常占用资源,所以尽量不要使用这个命令 避免少用该命令最好的方式是设置好文件夹结构,文件不要乱放 1.文件搜索命令:find 命令名称:find 所在路径:/bin/find 执行权限:所有用 ...

  5. linux入门教程(六) Linux文件与目录管理

    在linux中什么是一个文件的路径呢,说白了就是这个文件存在的地方,例如在上一章提到的/root/.ssh/authorized_keys 这就是一个文件的路径.如果你告诉系统这个文件的路径,那么系统 ...

  6. Linux系列教程(六)——Linux文件搜索命令

    前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s  链接名 表示创建软链接,不加-s表示创建硬链接:还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令 ...

  7. Linux系列教程(七)——Linux常用命令之帮助和用户管理命令

    上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...

  8. Linux系列教程(七)——Linux帮助和用户管理命令

    上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...

  9. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

随机推荐

  1. 微信小程序 封装请求

    在写小程序的时候,每个JS文件都一大堆的请求,看得自己都眼花缭乱,下面看一下怎么对请求方法进行封装. 1,方法封装,在util文件夹下新建文件,创建request.js文件,工具文件,用于对方法封装) ...

  2. mock数据的基础使用

    一.应用场景 在我们自己做一个项目时,会遇到后端还没完成数据输出或者接口没写好的情况.你没有办法想后台获取数据,这时候需要前端只好自己写静态模拟数据(假数据).mockjs就是用来创造假数据的,他的用 ...

  3. vue.js及项目实战[笔记]— 04 axios

    一. axios 1. 基本使用 axios.method('url',[,...data],options) .then(function(res){ }) .catch(function(err) ...

  4. HBuilder离线打包启用Chrome Inspect调试

    解决方法: 修改这个文件 assets/data/dcloud_control.xml <msc version="1.9.9.39354" debug="true ...

  5. Kotlin入门(5)字符串及其格式化

    上一篇文章介绍了数组的声明和操作,包括字符串数组的用法.注意到Kotlin的字符串类也叫String,那么String在Java和Kotlin中的用法有哪些差异呢?这便是本文所要阐述的内容了. 首先要 ...

  6. Expo大作战(三十七)--expo sdk api之 GLView,GestureHandler,Font,Fingerprint,DeviceMotion,Brightness

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  7. python内置小工具

    python -m http.server # 启动一个下载服务器 echo '{"job": "developer", "job": &q ...

  8. svn下已add文件如何忽略

    正如官方指南所言:TortoiseSVN → Unversion and add to ignore list,取消版本控制并添加至忽略列表. http://www.cnblogs.com/huang ...

  9. https证书概念

    https://studygolang.com/articles/10776 http://www.360doc.com/content/15/0520/10/21412_471902987.shtm ...

  10. 3.4Python数据处理篇之Numpy系列(四)---ndarray 数组的运算

    目录 目录 (一)数组与标量的运算 1.说明: 2.实例: (二)元素级的运算(一元函数) 1.说明: 2.实例: (三)数组级的运算(二元函数) 1.说明: 2.实例: 目录 1.数组与标量的运算 ...