find 命令路径: /bin/find
功能描述:文件搜索
find [目录] [条件] [动作]
[目录]
不输入代表当前目录
例:
find 显示当前目录的所有文件
find /boot 显示boot目录的所有文件
[条件]
(1)用户和组:-user -group
例:查找home目录下所有的属于指定的文件
find /home/ -user abc
(2)根据文件类型来查找:(一般查找文件或者目录)
类型:-type ( f 文件,d 目录,l 连接,p 管道,c 字符文件,b 块文件,s socket文件 )
find /home/ -type f
find /home/ -type d
(3)文件名:-name
例:查找名字包含2017的文件
find /home/ -name *2017*
(4)大小:-size + 大于 - 小于
例:找到boot目录下大于5M文件
find /boot/ -size +5M
(5)时间: -mtime -atime -ctime
ctime:“属性改变时间(change time)”
mtime:“内容修改时间(modification time)”
Atime:“文件访问时间(access time)”
+N:N天之前 -N:N天之内
例:查找出root目录2天之前修改过的文件
find /root/ -mtime +2
查找root目录下3天之内修改过的文件
find /root/ -mtime -3
同理 ctime 和atime 一样的用法
(6)权限:-perm
例:查找等于0775权限的文件或目录
find /boot/ -perm 755
至少有777权限的文件或目录
find /tmp/ -perm -777
(7)查找的目录深度:
例:只查找目录第二层的文件和目录
find /boot/ -maxdepth 2
(8)多条件:
参数:
-a:与-and
-o:或-or
!:非 -not
例:找出来boot目录下文件大小在5~10M之间的文件或目录
find /boot/ -size +5M -a -size -10M
匹配root目录下不是文件类型 或者 权限至少是755
find /root ! -type f -o -perm -755
[动作]
-print: find命令将匹配的文件输出到标准输出
-ls:使用ls -dils 格式将匹配的文件输出到标准输出
-exec: find命令对匹配的文件直接执行该参数所给出的shell命令
-ok: 和-exec的作用相同,以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行
例:
find /var/log/ -mtime +100 -name "*.log" -ls
find /var/log/ -mtime +100 -name "*.log" -print
上篇介绍删除90天之前的文件,就是使用mtime 参数和-exec参数
查找 /var/log/目录下90天之前修改过的文件名字匹配为 "*.log" 结尾并且删除
find /var/log/ -mtime +90 -name "*.log" -exec rm -rf {} \;
find /var/log/ -mtime +90 -name "*.log" -ok rm -rf {} \;
参数解释:
-ok 和 -exec 一样都是执行命令
rm 要执行的命令
{} 表示查找出来了文件内容
\; {} 和 \;之间要有空格。 固定语法,就是以这个结尾“;”
阅读原文请点击这里,关注公众号“睿普Eflypro”即可了解更多技术文章哦~~~
下一期,traceroute命令的使用,敬请期待~
原文地址:http://blog.51cto.com/13475644/2052519