码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2016-05-20 19:54:29      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:linux

(   《文件有三个“时间”》: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下的文件查找命令--find

标签:linux

原文地址:http://zhweizhi.blog.51cto.com/10800691/1775477

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!