首页 > 代码库 > linux下find命令的使用

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

指导老师:冯德勇老师