Linux下的find命令是一个非常强大的文件和目录查找工具,它可以在指定目录下递归查找满足特定条件的文件或目录,find命令的基本语法如下:
find [路径] [表达式]
[路径]是可选的,表示要查找的目录,默认为当前目录;[表达式]是查找条件,可以是一个或多个,用空格分隔。
find命令支持的表达式有很多种,以下是一些常用的表达式:
name 文件名
:按文件名查找
iname 文件名
:按文件名查找,忽略大小写
type 类型
:按文件类型查找,如f(普通文件)、d(目录)、l(符号链接)等
mtime 时间
:按文件修改时间查找,如+N(超过N天前)、N(不超过N天前)、N(正好N天前)等
size 大小
:按文件大小查找,如+N(超过N字节)、N(不超过N字节)、Nc(至少N个字符)、Nk(至少N千字节)等
user 用户名
:按文件属主查找
group 组名
:按文件所属组查找
perm 权限
:按文件权限查找,如755、644等
exec 命令 {} ;
:对查找到的文件执行指定命令
下面是一些实际的例子:
1、在当前目录下查找所有以.txt结尾的文件:
find . name "*.txt"
2、在/home目录下查找所有属于用户tom的文件:
find /home user tom
3、在所有目录下查找所有大于10M的文件:
find / size +10M
4、在当前目录下查找所有7天内被修改过的文件:
find . mtime 7
5、在/var/log目录下查找所有以.log结尾的文件,并删除它们:
find /var/log name "*.log" exec rm {} ;
以上只是find命令的一部分功能,实际上find命令还有更多的选项和表达式,可以根据需要进行组合使用。
FAQs:
Q1: find命令中的“{}”和“;”是什么意思?
A1: “{}”表示find命令找到的每一个符合条件的文件或目录,而“;”表示命令的结束,在exec选项后面,我们可以使用这两个符号来对找到的每一个文件或目录执行指定的命令。
Q2: find命令能否查找其他文件系统中的文件?
A2: 可以,只要具有足够的权限,find命令可以在任何挂载的文件系统中进行查找。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/680495.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复