一、whereis及which命令

这两个命令用来搜索命令的路径(也遵循/etc/updatedb.conf配置文件的筛选规则)

whereis 命令名                                   #搜索命令所在路径及帮助文档所在位置
选项:
-b:只查找可执行文件
-m:只查找帮助文件

which 命令名                                      #查找命令是否存在,以及命令的存放位置在哪儿

二、find命令

find命令是用来在给定的目录下查找符合给定条件的文件

  find [OPTIONS] [查找起始路径] [查找条件] [处理动作]

1、OPTIONS参数

    -P、-L、-H:控制软连接的对待方式,用的不多。不介绍了

2、查找路径

    就是个目录路径,相对和绝对都可以。

3、查找条件

(1)、根据名称查找

-name "PATERN"

-iname "PATERN" :不区分名称字母大小写

如果要根据通配符进行模糊查找,需要查找的文件名要用引号括起来(双引号与单引号均可以)

  linux中的常用通配符有:

  *表示匹配任意内容

  ?表示匹配任意一个字符

  []表示匹配任意一个中括号内的字符

(2)、根据文件从属关系查找:

        -user USERNAME:查找属主指定用户的所有文件;

        -group GRPNAME:查找属组指定组的所有文件;

        -uid UID:查找属主指定的UID的所有文件;

        -gid GID:查找属组指定的GID的所有文件;

-nouser:查找没有属主的文件;

        -nogroup:查找没有属组的文件;

(一般来自Windows中的文件及linux系统内核的文件比如文件夹/sys及/proc下的文件一般有没有属主和属组的文件,这两部分的文件不要随便删除,其余的没有属主的文件可以看做垃圾文件,可以删除)

(3)、根据文件的类型查找:

 

(4)、 根据时间戳查找:

按照atime(文件的最后访问时间)、mtime(文件的最后修改时间)、ctime(文件最后改变时间)三个变量来查询:以天为单位,

find /var/log/ -mtime +10
#查找10天前修改的文件

(5)、按文件大小搜索

find 路径  -size 文件大小(单位为:k,M,G)

  其中+2M表示大于2M的文件,-2M表示小于2M的文件,2M表示等于2M的文件

多条件查询:

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

-a表示and  逻辑与,两个条件都满足

-o表示逻辑或,两个条件满足一个即可

find /etc -size +20k -a -size -50k -exec ls -lh {} \;

#    查找/etc/目录下,大于20KB并且小于50KB的文件,并且显示详细信息

#    -exec COMMAND {} \;   对查找到的每个文件执行由COMMAND表示的命令;

(6)按文件的inode结点号来查找文件

find 路径 -inum 文件的inode节点号

注意:查找目录时,所罗列的文件号(ls -li命令)列出的是目录下的文件或文件夹的inode号。

(7)根据文件的权限来查找

实例:

首先准备几个文件

首先来看:find ./ -perm 644

可见这是一种精确匹配,需要所有者,所属组,其他人三者相对应的位置的权限数字或者说权限字母完全对应一致才行

再来看find ./ -perm -640

可见,只要文件权限包含所有者及所属组均可读可写即可匹配,从上面的权限字母也很容易看出(rw-r--r--包含rw-r-----),从权限数字来看(644包含640)

再来看find ./ -perm /640

“-perm /mode”和“-perm -mode”之间的区别就好理解了。“-perm /mode”要求所匹配的权限之间是“或”的关系,“-perm -mode”则要求所匹配的权限之间是“与”的关系。也就是说,“-perm /640”表示所有者或所属组任何一个具有写权限就可以,而“-perm -640”则表示所有者和所属组必须同时具有写权限。

详细内容请参考:

对find命令按权限查找的进一步理解

三、grep命令

另外,grep命令常结合linux管道原理进行二次查找操作,如下所示:

find命令与grep命令的区别

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

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

Linux文件搜索的更多相关文章

  1. Linux文件搜索命令

    文件搜索命令:locate locate 文件名 在后台数据库中按文件名搜索,搜索速度很快(比find命令要快得多) locate命令所搜索的后台数据库的位置:/var/bin/mlocate 支持模 ...

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

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

  3. Linux 文件搜索命令:find、which、whereis 和 locate

    Linux 提供了许多用于文件搜索的命令,这些命令都很强大,但是也有一些不同之处,这里分别介绍一下. 一.find 命令 find 是最常见和最强大的一个文件搜索命令.使用 find 命令可以在指定目 ...

  4. Linux 文件搜索神器 find 实战详解,建议收藏!

    大家好,我是肖邦,这是我的第 10 篇原创文章. 在 Linux 系统使用中,作为一个管理员,我希望能查找系统中所有的大小超过 200M 文件,查看近 7 天系统中哪些文件被修改过,找出所有子目录中的 ...

  5. linux 文件搜索

    locate  文件名 在后台数据库中按文件名搜索,搜索速度快,不用遍历整个操作系统 /var/lib/mlocate locate 命令所搜索的后台数据库 updatedb 手动更新数据库 新建的文 ...

  6. linux 文件搜索命令find、-name、-iname、通配符*?、-size、-user、-group、-amin、-cmin、-mmin、-a、-o、-exec/-ok、-inum

    尽可能规划好目录结构,少用文件搜索操作,因为它会占用大量的系统资源 find /bin/find find [搜索范围] [匹配条件] find /etc -name initfind /etc -n ...

  7. Linux —— 文件搜索命令

    文件搜索命令(配置文件/etc/updatedb.conf) locate 文件名 搜索速度非常快 在后台数据库中按照文件名搜索 updatedb 更新数据库 只可以按照文件名搜索 whereis 命 ...

  8. whereis linux文件搜索

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...

  9. Linux文件搜索命令find

    命令find可以根据文件的不同属性在指定的范围内搜索文件,例如: 根据文件名进行查找,在目录/etc下搜索文件名为init( -iname 可以实现不区分大小写进行查找)的文件,实现精准查找,只查找文 ...

随机推荐

  1. JDBC知识点总结

    一:JDBC 概述     一.简介        1. JDBC(Java DataBase Connection,Java 数据库连接)是Java语言中用来规范客户端程序如何来访问数据库的应用程序 ...

  2. ImageLoader在ViewPage中的使用

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  3. NFC芯片选型及基本电路框架

    RFID作为一项专业度较高的技术,在一些公司,可能还会专门招聘专业的RFID工程师.本篇阐述的涉及到的只是基本选型设计.电路框架,关于RFID天线调试.低功耗检卡调试等,后续再其他篇章会继续更新! N ...

  4. IDEA记坑之移动项目文件之后,import 找不到文件以及出现Cannot access的问题

    今天本想挪动下文件,使项目更加可观,易整理,但是挪动后出现各种问题,import xxx;全部飘红.部分切面还出现Cannot access:试过了重启idea,rebuild....各种方法都行不通 ...

  5. xeus-clickhouse: Jupyter 的 ClickHouse 内核

    在科学计算领域,Jupyter 是一个使用非常广泛的集成开发环境,它支持多种主流的编程语言比如 Python, C++, R 或者 Julia.同时,数据科学最重要的还是数据,而 SQL 是操作数据最 ...

  6. egret的WebView实现

    需求 在egret中嵌入网页,类似 . 网上大概有两种思路吧,一种是直接在body里面加入iframe,如:[Egret]里使用iframe标签达到内嵌多个web界面;另一种就是通过模仿htmlinp ...

  7. 音视频前沿:新一代 AV1 视频标准究竟是怎样一种存在?

    AV1是开放媒体联盟Alliance for Open Media (AOM) 开发的第一代视频编码标准,自推出以来获得了产业界巨大关注和支持.腾讯多媒体实验室也加入进来和其他公司团队一同积极推动AV ...

  8. Java中Map的4种遍历方式

    第一种方式:这是平常用的最多也最可取的一种遍历方式. for (Map.Entry<String, Object> entry : map.entrySet()) { System.out ...

  9. redis入门指南(二)—— 数据操作相关命令

    写在前面 以下绝大部分内容取材于<redis入门指南>,部分结合个人知识,实践后得出. 只记录重要,明确,属于新知的相关内容,杜绝冗余和重复. 字符串 1.字符串类型是redis中最常见的 ...

  10. 三.cmdb

    一.服务器管理: https://github.com/rfjer/autoAdmin/tree/master/apps/servers 一服务器信息收集方式: 1.物理服务器 跑脚本传(bash/a ...