概述find 命令是Linux 下一个功能强大的搜索命令。与locate命令相比,它需要遍历磁盘文件,因此查找速度较慢,但也正因为如此,它的实时性比locate要好很多。另一方面,find命令的搜索条件比locate丰富得多。下面介绍find命令的常见用法和一些高级用法。
1.根据名称查找/-name \’prometheus\’
2、有时需要根据权限查找具有特定权限的文件。例如,可以使用-perm参数在当前目录中查找权限为755的文件:
寻找。 -烫发755
3. 以文件类型为条件
涉及参数-type,例如查找当前目录下的符号链接文件:
查找/选择类型
注意:
f 普通文件
d目录
b 块设备文件
c 字符设备文件
l 符号链接
插座
p 管道文件
4.基于时间的条件涉及参数-mtime、-atime、-ctime、-newer、-anewer、-cnewer、-amin、-cmin等。
find ./-mtime 3 #查找3天前更改的文件
find ./-mtime -3 #查找3天内更改的文件
find ./-mtime 0 #查找今天更改的文件
find ./-newer sort.txt #查找比sort.txt修改时间更新的文件
find ./-anewer sort.txt #查找访问时间比sort.txt更新的文件
find ./-amin 5 #查找5分钟前访问过的文件
注意:
atime 最后访问时间
mtime 最后修改时间
ctime 最后修改时间,包括属性和权限
5、exec参数——exec参数后面是command命令,其终止符用;标记,所以这个命令后面的分号是不可缺少的,考虑到分号在每个系统中会有不同的含义。所以在前面加一个反斜杠。
{} 大括号代表上一次查找到的文件名。
使用find时,只要将需要的操作写在文件中,就可以使用exec来配合find,非常方便。在某些操作系统中,只允许使用-exec 选项来执行ls 或ls -l 等命令。大多数用户使用此选项来查找旧文件并删除它们。建议在实际执行rm命令删除文件之前,最好先用ls命令看一下,确认是要删除的文件。 exec 选项后面是要执行的命令或脚本,然后是一对{ }、一个空格和一个\\,最后是一个分号。为了使用exec 选项,还必须使用print 选项。如果你验证find命令,你会发现该命令只输出距当前路径的相对路径和文件名。
5.1.将ls 放入exec
查找/var/lib/mysql -name \’log*\’ -o -name \’*bin*\’ -exec ls -al {} \\;
5.2.查找5天前更改的文件并将其删除
find /logs -type f -mtime +5 -exec rm {} ;
5.3.提示删除
find命令查找当前目录下所有文件名以.log结尾且修改时间超过5天的文件并删除,但删除前会给出提示。
寻找。 -name \’*.log\’ -mtime +5 -ok rm {} ;
按[y]键删除文件,按[n]键不删除
后续我会分享更多devops和DBA的内容,感兴趣的朋友可以关注!