linux 命令之find命令

一、find命令简介

find 命令有非常大的灵活性,可以向其指定丰富的搜索条件(如文件权限、属主、属组、文件类型、日期和大小等)来定位系统中得分文件和目录。此外,find还支持对搜索到的结果进行多种类型的命令操作

二、举例说明

1、查找指定文件

使用-name参数查找指定文件

find . -name  test

2、查找后缀相同的文件

find . -name "*.sh"

3、查找指定类型的文件

find /root/ -type d

4、查找最近修改过的文件

查找最近2天内有更新的文件

find ./root -mtime -2

5、查找指定目录深度下的文件

查找目录下最小深度为2 的log文件

find /root -mindepth 2 -name *.log

6、根据inode删除文件

首先通过ls -l查找inode

ll -i

根据通过上面查询的inode,然后使用find删除

find -inum inode --delete  

7、查找当前目录下指定权限的文件并获取完整路径

使用perm 参数查找指定权限的文件

find /root/ -type f -perm 75- -exec ls -l {} \;

8、查找指定文件的大小

查找超过1M的文件

find . size +1M -type f

查找小于1M的文件

find . size -1M -type f

9、清除查找到的超时的日志文件

清除查找到的文件,删除前确定

find ./root/ -mtime -5 -ok rm {} ;

10、查找指定用户的文件

查找root目录下属主tets用户的文件

find ./root/ -user test  -type f -print  

三、使用语法及参数说明

1、常用表达式选项参数说明

-mount,-xdev   只检查同一文件系统下的文件,避免列出其他文件系统中的文件

-amin n  过去n 分钟内被读取过

-anewer file 比文件file更晚被读取过的文件

-atime n  过去n天内被读取过的文件

-ctime n  过去n分钟内被修改过

-cnewer file  比文件file更新的文件

-ctime n   过去n天被修改过的文件

-empty  空的文件-gid n or -group name

-ipath p, -path p 路径名称符合p 的文件,ipath会忽略大小写

-name name, -iname name  文件名称符合name的文件,iname会忽略大小写

-size n n 单位 k表示kilo bytes,w是二个位元组

-type b/d/c/p/l/f  查是块设备、目录、字符设备、管道、符号链接、文件

-perm  按执行权限来查找

-uer usernam 按文件属主来查找

-group groupname 按组来查找

-depth  指定目录深度来查找  

-maxdepth 指定目录最大深度来查找

-mindepth 指定目录最小深度来查找

-follow 遇到符号链接文件,就跟踪链接所指定的文件

--prune 忽略某个目录

--version 查看版本

-help  获取帮助

2、常用行动参数说明

-delete 删除查找到的文件

-exec command  对查找到的文件执行command 命令

-ok command  执行命令前需要进行确定

-printf  格式化输出

3、多条件组合参数

-o  是或者的意思

-a  是而且的意思

-not 是相反的意思