一、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. 第一章:开始启程-你的第一行Android代码

    Android 系统为开发者提供了什么? 四大组件 活动(Activity):界面 服务(Service):后台默默运行 广播接收器(Broadcast Receiver):接收.发送广播消息 内容提 ...

  2. Java wait 和 sleep 的区别

    一.区别 sleep 来自 Thread 类,和 wait 来自 Object 类 sleep 方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或方法 wait,notify和 ...

  3. Laravel表单验证提示设置多语言

    默认表单提示是英文的,我们可以安装语言包构建多语言环境. 根据版本选择命令 For Laravel 7.x : run composer require caouecs/laravel-lang:~6 ...

  4. ArcServer服务通过python备份,到另一台机器还原服务

    通过python可以快速把服务器上所有的服务都备份下来(只能备份服务,无法备份缓存文件),然后可以把备份文件考到需要新装的服务器上进行还原.还原时所有的Server缓存.输出等文件夹地址都是按源备份地 ...

  5. 三.cmdb

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

  6. IndentationError: unindent does not match any outer indentation level解决策略

    [亲测有效]Nodepad++/Sublime Text3中Python脚本运行出现语法错误:IndentationError: unindent does not match any outer i ...

  7. CSS如何将图像转换为模糊图像?

    在CSS中,可以使用filter属性来模糊处理图像:filter属性用于将图像转换为模糊图像.该属性主要用于设置图像的视觉效果. 语法: filter: blur() 属性值: ● blur():给图 ...

  8. 奇妙的 CSS MASK

    本文将介绍 CSS 中一个非常有意思的属性 mask . 顾名思义,mask 译为遮罩.在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域 ...

  9. cf1216E2 Numerical Sequence (hard version) 二分查找、思维题

    题目描述 The only difference between the easy and the hard versions is the maximum value of k. You are g ...

  10. python中pymysql executemany 批量插入数据

    import pymysqlimport timedb = pymysql.connect("IP","username","password&quo ...