【Linux】文件查找:find

Linux下有多种查找文件指令:find、whereis、which和locate。

● which:查看可执行文件的位置

● whereis:查看文件的位置

● locate:配合数据库查看文件

● find:实际搜寻硬盘查询

其中find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。下面主要对find指令相关用法进行详细介绍。

●●●find指令:

【格式】find  [指定查找目录]  [查找规则]  [查找完后执行的action]

默认路径为当前目录;默认表达式为 -print

1、指定查找目录

2、根据文件名查找

-name:根据文件名查找(精确查找)

-iname:根据文件名查找,但不区分大小写

另外介绍下文件名通配的知识。

1)*表示 通配任意的字符

2)?表示通配任意的单个字符

3)[]表示通配括号里面的任意字符

3、正则表达式查找

!:非条件;

-a :与条件(-and);

-o :或条件(-or),连接两个不同的条件(两个条件满足其一即可)

-not 非条件(与“!”相同,对条件取反)

4、根据文件类型来查找文件

【-type】

f :普通文件;d :目录文件;l :链接文件;b :块设备文件;c:字符设备文件;p:管道文件;s :socket文件

5、根据文件大小查找文件

【-size】

-size n: 查找文件长度等于n的文件;-size -n:查找文件长度小于n的文件;-size +n:查找文件长度大于n的文件

6、根据文件时间查找文件

-atime:访问时间,用户最近一次访问文件的时间;

-mtime:修改时间,文件内容最后一次被修改的时间。
-ctime:变化时间,文件元数据(metadata,例如权限或所有权)最后一次改变的时间。

7、根据文件权限查找文件

【-prem】

权限符号:rex分别表示可读、可写和可执行,。当权限符号为-e-:表示只可以写,八进制表示为2,依次进行表示。

8、根据文件所属用户和组来查找文件

-user :根据属主来查找文件

-group:根据属组来查找文件

●● which指令:

which命令的作用是:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

【格式】which 可执行文件名称

-n :指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

-p :与-n参数相同,但此处的包括了文件的路径。

-w :指定输出时栏位的宽度。

-V :显示版本信息

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的,所以不同的 PATH 配置内容所找到的命令是不一样的。 cd 是bash 内建的命令,但是 which 默认是找 PATH 内所规范的目录,所以找不到的。查找which时会有两个 which ,其中一个是 alias 这就是所谓的【命令别名】,意思是输入 which 会等同后面接的那串命令。

● whereis指令:

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

whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。whereis 程序还具有搜索源代码、指定备用搜索路径和搜索不寻常项的能力。

【格式】whereis  文件名

-b :定位可执行文件。

-m :定位帮助文件。

-s :定位源代码文件。

-u :搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

和find相比,whereis查找的速度非常快,这是因为linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find命令那样,通过遍历硬盘来查找,效率高。

但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件却无法查找到,原因就是因为数据库文件没有被更新。

● locate指令:

locate作用:使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的索引数据库之后当寻找时就只需查询这个索引数据库而不必实际深入档案系统之中了

【格式】locate  文件名

eg:locate passwd (只要包含了passwd的都会被显示出来)

locate可进行筛选

-i  :查找文件的时候不区分大小写

-n :只显示查找结果的前N行

时间: 2024-10-13 18:24:12

【Linux】文件查找:find的相关文章

Linux文件查找之find&locate

Linux文件查找之find&locate 一.概述 Linux系统核心的思想之一"一切皆文件",对于这么多的文件,如何快速查找过滤呢?下面我们就看看系统提供的文件查找命令find和locat,熟练使用find命令是运维人员的必经之路 二.find的用法及示例 1.find特点 查找速度略慢 精确查找 实时查找 只能搜索有读取和执行权限的目录 2.find用法 用法:find  [options]  [查找路径]  [ 查找条件]  [处理动作] 查找条件: 根据文件类型查找

Linux文件查找.md

Linux 文件查找 在Linux系统的查找相关的命令: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 whereis whereis命令是定位可执行文件.源代码文件.帮助文件在文件系统中的位置.这些文件的属性应属于原始代码,二进制文件,或是帮助文件.whereis 程序还具有搜索源代码.指定备用搜索路径和搜索不寻常项的能力. 语法 whereis [-bmsu] 文件或者目录名称 参数 -b 定位可执

Linux文件查找

Linux文件查找 Linux的基本法则之一为一切皆文件,Linux遵循FHS(Filesystem Hierarchy Standard),文件系统目录标准,FHS采用树形结构组织文件:在使用过程中,我们会遇到知道文件名却不知道文件位置的情况,或者查找某些类型的文件,此时我们需要文件查找的功能. 一.常用查找命令: Locate与finad: locate命令为非实时查找模式:非实时查找,需要根据索引查找,依赖于索引,而索引构建相当占用资源:索引的创建是在系统空闲时由系统自动进行(每天任务):

Linux 文件查找命令find,xargs详述

Linux文件查找命令find,xargs详述     <exec 后期讲解> 关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 一.find 命令格式 1.find命令的一般形式为:

Linux文件查找命令find,xargs详述

转自:http://www.linuxsir.org/main/node/137本文进行了整理修订 Linux文件查找命令find,xargs详述 摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录 版权声明 前言:关于find命令 一.find 命令格式 1.find命令的一般形式为: 2.find命令的参数: 3.find命令选项: 4.使用exec或ok来执

Linux文件查找命令find用法整理(locate/find)

Linux文件查找查找主要包括:locate和find 1.locate 用法简单,根据数据库查找,非实时,用法: locate FILENAME 手动更新数据库(时间可能较长) updatedb 2.find 实时,精确,功能强大,用法: find 路径 查找标准 查找后动作 (1)路径:. 或者 ./ 均表示当前目录 (2)查找标准: -name 'FILENAME' 文件名精确匹配(支持通配符* ? []) -iname 'FILENAME' 文件名模糊匹配(不分大小写) -regex P

Linux文件查找命令find,xargs详述【转】

转自:http://blog.csdn.net/cxylaf/article/details/4069595 转自http://www.linuxsir.org/main/?q=node/137 Linux文件查找命令find,xargs详述 总结:zhy2111314来自:LinuxSir.Org整理:北南南北摘要: 本文是find 命令的详细说明,可贵的是针对参数举了很多的实例,大量的例证,让初学者更为容易理解:本文是zhyfly兄贴在论坛中:我对本文进行了再次整理,为方便大家阅读: 目录

Linux文件查找命令

1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> - <指定目录>: 所要搜索的目录及其所有子目录.默认为当前目录. - <指定条件>: 所要搜索的文件的特征. - <指定动作>: 对搜索结果进行特定的处理. 如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显

linux文件查找工具 -- find

简述: linux中find命令是一种强大的实时查找工具,它通过用户给出的路径,在该路径下的文件系统中进行文件查找.因此在遍历一个较大的文件系统时会比较花费时间,而且find命令占用资源也是比较大的,所以它的工作特点是,查找的速度略慢,但是可以实现精确查找和实时查找.由于用户权限的问题,可能只搜索用户具备读取和执行权限的目录.由于find命令能力很强大所以它的选项也有很多. find命令用法: find命令格式: find [选项] [查找起始路径] [查找条件] [处理动作] find [-H

linux文件查找及操作

在linux下查找文件的办法最常用的就是find指令,让我们来看一下find指令如何来使用吧: find find . -name  txt             //在当前目录查找名字为txt的文件或者是文体夹 find . -type c                //字符设备 find . -type d                //目录 find /dev -type b             //块设备 find /dev -type s             //网络