shell编程教学(二)|常用命令-----find详解|exec

简介

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 \;

结合以上参数灵活结合使用,会有简化代码的作用!

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值