您的位置:首页 > 运维架构 > Linux

【Linux】Linux下的find命令详解

2016-12-31 12:33 169 查看
Linux下想找到一个文件却不知道放在哪里了怎么办?这时候find命令就派上用场了,与查找相关的命令还有如下这些,我简单的介绍一下。

1. which


指令会在PATH变量指定的路径中,搜索某个系统命令 的位置,并且返回第一个搜索结果

2. whereis


只能用于程序名的搜索,而且只搜索二进制文件,源代码文件,说明文件,从Linux数据库中查找,很快,但是由于数据库更新不及时,所以此命令的查找结果也受影响

3. locate


结合数据库进行查询,所以前提是数据库必须可以使用才能查到,如果你的locate无法使用,先试试执行updatedb,这个执行完,locate应该就能使用了。

关于查找的指令中,find是最常用的,也是比较强大的,提供了相当多的查询条件,所以我主要说说find。

命令格式

find pathname -options [-print -exec -ok …]

如何使用

1>根据文件名来查找文件,参数-name



命令:find /home/liuqing/class -name test.c

find后紧跟着的是我给出的一个路径,如果你不知道想找的文件在哪个目录下,也可以直接给”/”,表示在根目录下进行查找。参数-name表示按照文件名进行查找。再给出要找的文件名是test.c结果如上图。

2>根据文件权限来查找文件 ,参数-perm



与之前一样的就不做解释了,-perm 表示按照文件的权限进行查找,后面再给出要查找的文件是775,表示查找:拥有者权限为可读可写可执行,所属组权限为可读可写可执行,其他用户权限为可读不可写可执行的文件。

3>按文件所属用户来查找文件,参数:-user



在我指定的路径下查找属于用户liuqing的文件。

4>按文件的所属组来查找文件,参数:-group



可以看出来,我code文件夹下的文件所属用户和所属组都是liuqing

5>按照文件的修改时间来查询,参数:-mtime,-atime,-ctime。

-mtime -n:表示在n天之内内容修改过的文件

-mtime +n:表示n天以前内容修改过的文件



查找到class文件夹下5天内修改过内容的文件。

-atime与-ctime参数用法和-mtime 一致,区别在于,-atime指的是查找文件最后被读取的时间,该时间用touch命令可以更改;-ctime指的是查找文件本身最后被修改的时间,该时间用chmod,chgrp,mv命令可以修改;-mtime指的是内容被修改的时间。

6>查找无有效所属组的文件,参数:-nogroup

当某一个用户组被删除后,属于该用户组的所有文件就没有了所属组,如果还想要找到这些文件,就可以使用该指令

7>查找某一类型的文件,参数:-type

我们知道,linux下一切皆文件,所以,查找时也可以根据文件的类型查找。

顺便提一下文件的类型:

b - 块设备⽂件。

d - 目录文件。

c - 字符设备⽂件。

p - 管道文件。

l - 符号链接⽂件。

f - 普通⽂件。



8>按文件长度来查找,参数:-size



查找该路径下文件大小在50k以内的文件。

3.总结

本篇博客只介绍了find的几种基本的,常用的用法,初此之外,find还有一些其他的用法,也能和其他命令结合使用,不再一一举例。find是在磁盘上进行查找,所以,相对来说比较耗时,但是它的功能很强大,是我们比较常用的查找指令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux find