inux下find(文件查找)命令的用法总结

我们为什么要学会使用find命令?

每一种操作系统都有成千上万的文件组成,对于linux这样“一切皆文件”的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件查找功能,但是对linux这一功能可能并不是很熟悉,其实想玩linux的你更要牢牢掌握这个命令,因为linux不像windows那样有固定的文件名后缀,并且因为linux阵营下百家争鸣的特性,一个相同的文件在不同的发行版,可能会有不同,所以如果你能牢牢掌握find命令的使用,你在摸索linux的道路上将会顺利很多,同时你会发现linux下文件查找功能其实很简单,而且要比windows下查找功能强大很多很多!好,下面进入正题

Linux下查找文件的命令有两个;locate 和 find

首先说下locate,locate这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进行模糊匹配,在精确度上来说差了点,简单介绍下它的两个选项:

#locate

-i        //查找文件的时候不区分大小写 比如:locate  –i   passwd

-n       //只显示查找结果的前N行     比如:locate  -n  5   passwd

下面重点说下find,find在不指定查找目录的情况下是对整个系统进行遍历查找

使用格式 :   find  [指定查找目录]  [查找规则]  [查找完后执行的action]

[指定查找目录]例如:

这里要注意的是目录之间要用空格分开

[查找规则]

(1)根据文件名查找

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

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

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

*表示  通配任意的字符

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

[ ] 表示 通配括号里面的任意一个字符

(2),根据文件所属用户和组来查找文件

#  -user         //根据属主来查找文件

#  -group        //根据属组来查找文件

(3),根据uid 和 gid来查找用户

#find  /tmp  -uid  500  //查找uid是500 的文件

#find  /tmp  -gid  1000 // 查找gid是1000的文件

(4),-a  and  -o  and  –not的使用

# -a 连接两个不同的条件(两个条件必须同时满足)

# -o 连接两个不同的条件(两个条件满足其一即可)

# -not 对条件取反的

(5),根据文件时间戳的相关属性来查找文件

我们可以使用stat命令来查看一个文件的时间信息 如下:

#-atime

#-mtime

#-ctime

#-amin

#-mmin

#-cmin

所以这里atime,mtime,ctime就是分别对应的“最近一次访问时间”“最近一次内容修改时间”“最近一次属性修改时间”,这里的atime的单位指的是“天”,amin的单位是分钟

#find  /tmp  –atime  +5           //表示查找在五天内没有访问过的文件

#find  /tmp  -atime  -5            //表示查找在五天内访问过的文件

(6),根据文件类型来查找文件

-type

f     // 普通文件

d     //目录文件

l     //链接文件

b     //块设备文件

c     //字符设备文件

p     //管道文件

s     //socket文件

(7),根据大小来查找文件

-size

#find  /tmp  -size   2M           //查找在/tmp 目录下等于2M的文件

#find  /tmp  -size  +2M           //查找在/tmp 目录下大于2M的文件

#find  /tmp  -size  -2M           //查找在/tmp 目录下小于2M的文件

(8),根据文件权限查找文件

-perm

#find  /tmp  -perm  755           //查找在/tmp目录下权限是755的文件

#find  /tmp  -perm  +222          //表示只要有一类用户(属主,属组,其他)的匹配写权限就行

#find  /tmp  -perm  -222          //表示必须所有类别用户都满足有写权限

(9),-nouser  and  -nogroup

#find  /  -nogroup –a –nouser       //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)

[查找完执行的action]

# -print                                 //默认情况下的动作

# -ls                                     //查找到后用ls 显示出来

# -ok  [commend]                //查找后执行命令的时候询问用户是否要执行

# -exec [commend]              //查找后执行命令的时候不询问用户,直接执行

这里要注意{}的使用:替代查找到的文件

#find  /tmp  -atime  +30  –exec rm –rf  {}  \; #删除查找到的超过30天没有访问过文件

我们也可以使用xargs来对查找到的文件进一步操作

时间: 2024-10-14 01:02:03

inux下find(文件查找)命令的用法总结的相关文章

linux下find(文件查找)命令的详解

文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在

Linux下的文件查找命令——find

Linux下几个常见的文件查找命令: which       查看可执行文件的位置 whereis    寻找特定文件,查看文件的位置 locate       配合数据库查看文件位置 find          实际搜寻硬盘查询文件名称 通常情况下find命令并不是很常用,大家都优先使用whereis和locate命令来查找,因为whereis和locate命令都是利用数据库来查找文件所在,并没有实际查询硬盘,所以速度很快,节省时间.但是我们的find命令依然很强大,它的查找条件相当多,对于用

linux环境下的文件查找命令--find

熟悉linux的伙伴都知道,在开源的linux环境中,最主要的思想就是一切皆文件,linux中的任何东西都可被看作文件,那么我们在使用这些文件的时候就面临一个问题如何查找一个文件,在这里我以CentOS6.5虚拟机为例,做演示. Linux下有多种查找文件指令:find.whereis.which和locate. ● which:查看可执行文件的位置 ● whereis:查看文件的位置 ● locate:配合数据库查看文件 ● find:实际搜寻硬盘查询 其中find是最常用和最强大的查找命令.

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

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

linux下的文件查找命令

文件查找:按照文件名或文件属性来搜索文件: 一)locate 模糊查找:        基于专用的数据库进行查找,数据库应该事先创建,并且定期更新:        可以使用updatedb命令手动更新locate数据库:        查找速度非常快,查找精确到非常有限: =============================================================二)find 精确查找:        查找精度高,速度略慢:        在指定的位置进行文件名或文

Linux下的文件查找命令--find

(   <文件有三个"时间">:http://zhweizhi.blog.51cto.com/10800691/1775447           ) 概述 find命令是通过遍历硬盘的方式查找指定名称的文件,因此其效率相比whereis 等指令,要慢许多. 下面介绍find命令的相关用法: 命令格式为: find pathname [option] [action] pathname(路径) 其中,pathname是要查找的路径(.表示当前路径,/表示根路径) 如 fin

Linux的下的文件查找命令find

Linux下有几种查找文件命令: Which 查看可执行文件的位置. whereis 查看文件的位置. locate 配合数据库查看文件位置. find 实际搜寻硬盘查询文件名称. 每种命令都有他特定的功能, which命令的作用是,在PATH变量指定的路径中,搜索某个系 统命令的位置,并且返回第一个搜索结果. whereis命令只能用于程序名的搜索,而且只搜索二进制文件 (参数-b).man说明文件(参数-m)和源代码文件(参数-s). locate 让使用者可以很快速的搜寻档案系统内是否有指

Linux下的文件查找类命令(转载)

如何快速有效的定位文件系统内所需要查找的文件呢?Linux为我们提供了一些文件查找类的命令,我们需要掌握以下几个命令: http://blog.csdn.net/sailor201211/article/details/53290470 which 命令which会依照用户的PATH环境变量查找一个外部命令对应的可执行文件的路径.如: $ which gcc /usr/bin/gcc whereis 和which命令相比,whereis命令则可以定位一个外部命令的二进制文件.源代码文件及用户手册

linux下的find文件查找命令与grep文件内容查找命令

linux下的find文件查找命令与grep文件内容查找命令 在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. 一.find命令 基本格式:find  path expression 1.按照文件名查找 (1)find / -

linux下find和locate文件查找命令详解

文件查找命令: locate命令特点 1.非实时,模糊匹配,查找是根据全系统文件数据库进行的: 2.updatedb, 手动更新生成文件数据库,默认第天凌晨4点02分更新数据库 3.速度快 find命令特点: 1.实时 2.精确 3.支持众多查找标准 4.搜索指定目录中的所有文件完成查找,但速度慢: 格式: find 查找路径 匹配标准 查找到以后的处理运作 查找路径:默认为当前目录 匹配标准:默认为指定路径下的所有文件 处理运作:默认为显示 匹配标准: -name '文件名':对文件名作精确匹