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 是相反的意思