find文件查找
1.文件查找
find:查找文件和目录
语法:
find [路径] [选项] [表达式] [动作]
2.find的选项
-type:按文件类型查找
文件类型的分类:
f:普通文件
d:目录
l:软链接文件
c:字符设备文件
b:块设备文件
s:安全套接字文件
p:管道文件
语法:
find 路径 -type 文件类型
![]()
-size:按文件内容的大小查找
数字:精准查找文件内容的大小
+ 数字:查找大于这个数字的文件内容的大小
- 数字:查找小于这个数字的文件内容的大小
语法:
find 路径 -size [+(-)]数字
![]()
-name:按文件名查找
语法:
find 路径 -name '文件名'
![]()
-iname:按文件名查找并且不区分大小写
语法:
find 路径 -iname '文件名'
![]()
按文件时间查找:
一个文件三种时间:
-atime:按文件访问时间查找
-mtime:按文件内容创建,修改时间查找(一般使用这个查找)
-ctime:按文件属性修改时间查找
数字:查找从当前时间算起减去这个数字的文件
+ 数字:查找从当前时间算起减去这个数字之前的所有文件
- 数字:查找从当前时间算起到这个数字之内的文件
语法:
find 路径 -mtime [+(-)]数字
![]()
stat:查看文件的三种时间
语法:
stat 文件名
![]()
-user:按文件属主查找
-nouser:查找没有属主的文件
语法:
find 路径 -user 文件的属主
![]()
-group:按文件属组查找
-nogroup:查找没有属组的文件
语法:
find 路径 -group 文件的属组
![]()
-perm:按文件权限查找
参数:
/权限:三个权限位上,只要有一个权限位上的权限被包含,就可以被找到
-权限:每个权限位上必须该数字权限的所有权限
语法:
find 路径 -prem [-(/)]权限数字
![]()
-maxdepth:按文件层级查找
语法:
find 路径 -maxdepth 数字(会显示数字到第一层层级)
![]()
3.find的动作
-print:打印查找到的内容到终端上(find命令默认自带加了和没加没有区别)
-ls:查看文件的详细信息
其他查看信息(效果一样):
|xargs ls -l
ls -l $(find xxx)
ls -l `find xxx`
![]()
-delete:删除查找到的文件,只能删除空目录
其他删除命令:
|xargs rm -fr
rm -rf $(find xxx)
rm -rf `find xxx`
![]()
-ok:找到文件后执行后面的bash命令,并询问是否要进行操作
语法:
find 路径 选项 -ok bash命令 {查找出来的文件} \;(这个'\'转义符,find命令不识别';',所以需要转义符来处理)
![]()
-exec:和-ok动作一样,但是它会直接执行不会询问
![]()
4.find多条件查找
-a:和,并且(fin命令自带,两个选项之间可以不加-a)
![]()
-o:或者
![]()
!:取反
![]()
5.补充
xargs:管道命令,是个命令传递参数的一个过滤器,也是组合多个命令的一个工具,就是把其他命令给它的数据传递给它后面的命令作为参数
语法:
find xxx |xargs [选项] bash命令
![]()
选项:
-i:用{}放置传递的数据
![]()