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

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

2016-05-20 17:12 211 查看
( 《文件有三个“时间”》:http://zhweizhi.blog.51cto.com/10800691/1775447 )

概述

find命令是通过遍历硬盘的方式查找指定名称的文件,因此其效率相比whereis 等指令,要慢许多。
下面介绍find命令的相关用法:

命令格式为:
find pathname [option] [action]

pathname(路径)
其中,pathname是要查找的路径(.表示当前路径,/表示根路径)

find . -name test.c
表示在当前路径下查找名为test.c的文件

find / -name test.c
表示在系统根路径下查找名为test.c的文件


option(参数)

下面分类介绍一下常用的参数:
-name : 按文件名查找
如 :
find . -name hello.c
表示在当前路径下查找名为hello.c的文件


-perm :按文件权限查找

这里 root权限为 0

如:
find . -perm 755 chmod -R 777
表示查找当前目录下所有权限为755的文件,并设置成777


-user 按照文件属主来查找

-group 按照文件所在的组查找

-nogroup 查找无有效所属组的文件,即该文件所属的组在/ etc/groups中不存在。

-nouser 查找无有效属主的文件,即该文件的属主在/etc/ passwd中不存在。

-newer file1 ! file2 查找更改时间比文件file1新,但比文件file2旧的文件。

-type 查找某一类型的文件
如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。


-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计。
例如:
find /root -size -5557c -size +5555c -exec ls -ld {} \;
表示查找文件长度小于5557 大于5555 的文件(即长度为5556的文件)


-depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。

-fstype:查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。

-mount:在查找文件时不跨越文件系统mount点。

-follow:如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。

-cpio:对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。

-mtime -n +n (mtime表示天数,此外还有诸如-mmin表示分钟等,其余两种时间同理)
-ctime -n +n
-atime -n +n
:按照文件的更改时间(三种)查找文件
如:
find /root -mmin 5

查找系统中最近5分钟访问的目录


action(操作)

查找完成后,可以立即执行指定的操作,下面举例:
find . -size -11c -size +9c -delete
查找文件大小为10k的文件,并删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux