超详细find命令解析,一遍就会!!!

1概念语法

在Linux中一切皆文件,我们先需要在大量的文件中找到我们需要的文件就需要查找命令,find命令是查找文件的一个很好的命令

find

语法格式:find   [option]   查找路径  查找条件   处理动作

1.1查找路径

默认从当前所在目录向下查找,即相对路径,也可以使用绝对路径

1.2查找条件

想要查找的文件所具有的特点、属性

1.2.1基于文件名和inode以及链接数查找

选项描述
name后面跟文件名,支持通配符模糊查找
iname后面跟文件名,支持通配符,忽略大小写
inum后面跟文件的inode号,基于inode查找
samefile后面跟文件名,查找与其inode相同的文件,即硬链接
links #后面跟数字,查找硬连接数为# 的文件

1.2.2基于文件属主属组查找

选项描述
user后面跟用户名,查找属主owner相同的文件
group后面跟用户名,查找属组相同的文件
uid #查找用户uid是#的文件
gid #查找用户gid是#的文件
nouser查找没有属主owner的文件
nogroup查找没有属组group的文件

1.2.3基于文件类型查找

-type
	f:普通文件
	d:目录文件
	l:链接文件
	s:套接字文件
	c:字符设备文件
	b:块设备文件
	p:管道文件

1.2.4基于文件大小查找

-size [+|-]#

#为文件大小

单位
	c:字节
	b:块(512字节)
	w:字(2字节)
	K:千字节
	M:兆字节
	G:吉字节
参数描述
#(#-1,#] :大于#且大小不超过1个同样单位大小的文件
-#[0,#-1):小于#-1的文件
+#(#.00):大于#的文件

1.2.5基于时间查找

1.以天为单位

-atime [+|-]#:表示访问时间
-mtime [+|-]#:表示数据修改时间
-ctime [+|-]#:表示与元数据修改时间
参数描述
#[#,#+1)第几天
-#[0,#)多少天之内
+#[#+1.∞)多少天之前

2.以分钟为单位

-amin [+|-]#:表示访问时间
-mmin [+|-]#:表示数据修改时间
-cmin [+|-]#:表示与元数据修改时间
参数描述
#[#,#+1)第几分钟
-#[0,#)多少分钟之内
+#[#+1.∞)多少分钟之前

1.2.6基于权限查找

-perm

语法:
	find    -perm     mode    / 精准匹配
	find    -perm    -mode    / 满足一个就可以,或关系
			mode----->>755		644		rwx

1.2.7基于搜索层级查找

-maxdepth   level  最大搜索深度
	find  -maxdepth  2     / 从当前目录开始向下最多搜索2层,包括第二层
-mindepth    level  最小搜索深度
	find  -mindepth  2     / 从当前目录向下的第二层目录开始搜索,不包括第二层	

1.2.8组合条件

	与:-a     	//	不加也默认为加了-a
	或:-o		//字面意思,一个或者另一个
	非:-not	或者	!		//在所选范围外

1.3处理动作

-print 默认动作,把查找到的内容输出到屏幕上

-exec  command   {}  \;:
	将前面查找到的文件当做后面command(命令)的参数,{}表示前面find查找到的文件,后面的\;是结束符不能少
-ok   command  {}   \;:与-exec用法一样,在执行后面command命令时会给出提示,要不要执行
	
-xargs:传递参数,“|xargs”将find查找到的文件一个一个的传递给后面的命令当做参数
	
-delete:直接删除查找到的文件,不询问
	
>  file:将查找到的文件重定向到新的文件中

2示例

1.查找家目录下其他人有写权限的文件,取消其写权限

    find /root -perm -002 -exec chmod o-2 {} \;

2.查找/data下权限是644且以.sh结尾的普通文间件,修改权限为755

	find /data -perm 644 -name "*.sh" -exec chmod 755 {} \;

3.查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

	find / -nouser -o -nogroup -atime -7

4.查找/etc目录下所有用户都没有写权限的文件

	find /etc ! -perm 222 -ls
	find /etc ! -perm 222 -exec ls {} \;

5.查找/etc目录下至少有一类用户没有执行权限的文件

	find /etc ! -perm -111 -ls	// -111代表三个1最少选一个
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值