linux下find命令的使用
find
find命令是我们常用的查找文件的命令,它是一个非常强大的查找指令,但相对话费的时间会很长,并且非常消耗资源。
语法:
find 【路径】 【参数】 【表达式】 【-exec -ok ...】 指令 {} \;
{} 代表find找到的文件;
\ 禁止转义;
{} \; 之间是有空格的;
; 表示本指令结束
-exec find命令对匹配的文件执行该参数所给出的shell命令;
-ok 和-exec的作用相同,只不过是一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
例如:
find / -name test -exec rm -rf {} \; #查找/下面名字叫test的文件并删除,可以用下面命令;
find 是一个查找命令;
/ 查找的范围,这里是在根下面查找;
-name 是一个参数,这里是根据名字来查找
test 要查找的文件名;
-exec 执行后面的命令;
rm -rf 删除命令;
{} 存放查找到的结果;
\; 结束标志;
常用的find参数如下:
-name 按文件名称查找;
-size 按文件大小查找;
-user 按文件属主查找;
-type 按文件类型查找;
-perm 按文件权限查找;
-mtime 按文件更改时间查找;
例如:
find / -name test #查找根目录下名为test的文件或目录;(这里看到-exec后面的内容没有了,也就是不执行后面的操作,仅是将查找到的内容显示出来)
find / -size +1000M -exec ls -l {} \; #查找根目录下大于1000M的文件;
find ./ -type l -exec ls -l {} \; #查找当前目录下的链接文件并且以ls -l的命令列出;其中-type 后接的类型有一下几种:
d 目录;
c 字符设备文件;
p 管道文件;
l 链接文件;
f 普通文件;
find / -perm 777 #查找根目录下权限为777的所有文件和目录;
find ./ -mtime -2 #查找当前目录下2天内修改过的时间;
find ./ -mtime +2 #查找当前目录下2天前修改过的文件;
find ./ -atime -2 #查找当前目录下2天内访问过的文件;
find ./ -ctime +2 #查找当前目录下2天前修改过状态的文件;
如果要同时筛选出多个条件,则用:
-o:逻辑或, 只要给出的条件有一个满足的,查找条件就算满足;
-a:逻辑与,系统默认是与,表示当所有条件都要满足时,查找条件才满足;
-not:逻辑非,在命令中可用“!”,表示查找该条件不满足的文件;
例如:
find / -name test -o -perm 777 -exec ls -l {} \; #查找名字为test或权限为777的文件过目录;
###################################################
参数书籍:双星教育-系统管理员1
指导老师:冯德勇老师