简介
find命令常用来查找各种内容,通过各种条件限制,精确的找到我们需要的文件。不管是在日常还是shell编程中,都会用到。
本文中,会分类后,在各板块以 参数详解 + 示例 的模式讲解find用法。请结合示例实验体会其强大的功能!
find命令用法
1)按名字查找
参数:
-name >>按名称查找
-maxdepth >>查找的最大深度
-mindepth >>查找的最小深度
示例:
格式:find 查找范围 条件
[root@allen mnt]# find /mnt -maxdepth 2 -name file2 ##在/mnt下且最大深度为2层的范围里查找名字为file2的文件
2)按用户组,所有组
参数:
-user >>按文件所有人查找
-group >>按用户组查找
-a >>-and,与或非中的与
-o >>-or,与或非中的或
-not >>与或非中的非
示例:
[root@allen mnt]# find / -user allen >>在/下查找用户组为allen的文件或目录
[root@allen mnt]# find / -group allen >>在/下查找所有组为allen的文件或目录
[root@allen mnt]# find / -group root -a -user allen >>在/下查找所有组为root以及用户组为allen的文件或目录
[root@allen mnt]# find / -group root -o -user allen >>在/下查找所有组为root或用户组为allen的文件或目录
[root@allen mnt]# find / -not -group root -a -user allen >>在/下查找所有组不为root以及用户组为allen的文件或目录
3)按尺寸大小
-size 1M >>查找大小 等于1M 的文件
-size -1M >>查找大小 小于1M 的文件
-size +1M >>查找大小 大于 1M的文件
示例:
[root@allen iso]# find / -size 1M
[root@allen iso]# find / +size 1G
4)按类型
-type
f >>-file,普通文件
d >>目录
l >>链接文件
b >>块设备文件
c >>字符设备文件
p >>管道文件
s >>socket文件
示例:
[root@allen iso]# find /mnt -type f >>在/mnt下查找文件
5)按文件更改时间
-ctime 10 <<更改时间 距今 为10天的文件
-ctime -10 <<更改时间 距今 小于10天的文件
-ctime +10 <<更改时间 距今 大于10天的文件
-cmin 10 <<更改时间 距今 为10分钟的文件
-cmin +10 <<更改时间 距今 大于10分钟的文件
-cmin -10 <<更改时间 距今 小于10分钟的文件
示例:
[root@allen iso]# find /mnt -ctime -10
6)按文件权限
-perm /444 >>文件权限中u,g,o位只要有一位的权限被包含于444的文件----可以理解为“与或非中的或“
-perm 444 >>文件权限为444--------可以理解为“=”
-perm -444 >>文件权限中u,g,o位均包含r权限--------可以理解为“与或非中的与”
示例:
[root@allen mnt]# find /mnt -perm /400
7) -exec
-exec [commend] >>查找后执行命令的时候不询问用户,直接执行
>> -exec参数后面跟的是command命令
>>{} 代表前面find查找出来的文件名
>>以 ; 为结束标志,由于各个系统中分号会有不同的意义,因此在前面加上反斜杠。
示例:
将/etc下所有以.conf结尾的文件或目录备份到/mnt下
[root@allen mnt]# find /etc -name *.conf -exec cp {} /mnt \;
结合以上参数灵活结合使用,会有简化代码的作用!