( 《文件有三个“时间”》: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的文件,并删除
转载于:https://blog.51cto.com/zhweizhi/1775477