find 命令用法

根据文件类型搜索数据 -type

	find /oldboy  -type f/d/l/c/b/s

根据文件名称搜索数据 -name

	find /oldboy -name "*dog*"
	find /oldboy -iname "oldboy.txt"
		-i	--- 忽略大小写

根据文件大小搜索数据

	find /oldboy -size  +10k	--- 寻找大于10k文件
	find /oldboy -size  -1G		--- 寻找小于1G文件
	find /oldboy -size  10		--- 寻找大小正好是10字节文件 		  
===============================================================================================
补充: find命令根据大小查找数据单位信息
	`b'		for 512-byte blocks (this is the default if no suffix(角标/下标) is used)
				1个块=512字节  +1 > 512字节 ok -2 <1024 (小于一整块) 1 = 512字节 ok
	`c'		for bytes  
				最小尺寸单位
	`w'		for two-byte words
				以两个字节作为一个单词找出不同尺寸文件
	`k'		for Kilobytes (units of 1024 bytes)
				依据kb尺寸寻找数据
	`M'		for Megabytes (units of 1048576 bytes)     ****
				依据Mb尺寸寻找数据
	`G'		for Gigabytes (units of 1073741824 bytes)
				依据Mb尺寸寻找数据
===============================================================================================

根据文件路径深度查找

	find /oldboy -maxdepth 1 -name "oldboy01.txt"
		/oldboy/oldboy01.txt

	find /oldboy -mindepth 2 -name "oldboy01.txt"
		/oldboy/oldboy01/oldboy02/oldboy03/oldboy04/oldboy01.txt
		/oldboy/oldboy01/oldboy02/oldboy03/oldboy01.txt
		/oldboy/oldboy01/oldboy02/oldboy01.txt
		/oldboy/oldboy01/oldboy01.txt
		
		-mindepth    --- 查找数据最小深度, 从最小深度开始继续向下查找
		-maxdepth    --- 查找数据最深深度

根据条件逻辑查找数据

	1)并且逻辑关系	-a 
		find /oldboy  -size +6k  -a  -name "oldboy*"
		find /oldboy  -size +6k  -name "oldboy*"
  
	2)或者逻辑关系	-o
		find /oldboy  -name "oldboy*" -o -name "oldgirl*" 

根据时间条件查找数据

	find /oldboy  -mtime +7		--- 找距离当前时间7天以前的数据
	find /oldboy  -mtime -7		--- 找距离当前时间7天以内的数据
	find /oldboy  -mtime 7		--- 找距离当前时间之前正好7天的数据
  
	find /var/ -mmin +1		--- 找距离当前时间1分钟以前的数据
	find /var/ -mmin -1		--- 找距离当前时间1分钟以内的数据
	find /var/ -mmin 1		--- 找距离当前时间之前正好1分钟的数据

利用find命令 -prune 修剪 -print 输出

	[root@oldboy69 oldboy 23:12:38]# find /oldboy  -path "/oldboy/oldboy02"
		/oldboy/oldboy02
	[root@oldboy69 oldboy 23:14:08]# find /oldboy  -path "/oldboy/oldboy02" -o -name "oldgirl02.txt"
		/oldboy/oldboy01/oldgirl02.txt
		/oldboy/oldboy02
		/oldboy/oldboy02/oldgirl02.txt
		/oldboy/oldboy03/oldgirl02.txt
	[root@oldboy69 oldboy 23:14:36]# find /oldboy  -path "/oldboy/oldboy02" -prune  -o -name "oldgirl02.txt"
		/oldboy/oldboy01/oldgirl02.txt
		/oldboy/oldboy02
		/oldboy/oldboy03/oldgirl02.txt
	[root@oldboy69 oldboy 23:15:29]# find /oldboy  -path "/oldboy/oldboy02" -prune  -o -name "oldgirl02.txt" -print 
		/oldboy/oldboy01/oldgirl02.txt
		/oldboy/oldboy03/oldgirl02.txt

find 做批量删除

步骤一: 先将要处理数据找出来
步骤二: 将数据如何批量删除

方法一: 利用find命令参数
	find /oldgirl/ -name "oldboy*" -delete

方法二: 利用管道+xargs命令进行处理
	find /oldgirl/ -type f -name "olddog*" | xargs rm -rf

	xargs 
	1) 将产生信息进行转换, 转为命令可以识别的 参数或者对象信息
	2) 可以进行分组操作/将分组进行整合
		[root@oldboy69 oldgirl 00:40:41]# xargs < test.txt
		01 02 03 04 05 06 07 08 09 10
		[root@oldboy69 oldgirl 00:41:20]# xargs -n3 < test.txt
		01 02 03
		04 05 06
		07 08 09
		10

方法三: 利用反引号进行处理
	rm -f `find /oldgirl/ -type f -name "olddog*"`

方法四: 利用find命令特殊参数 -exec
	find ./ -type f -name "oldboy*" -exec rm -f {} \;
	find /oldgirl/ -type f -name "oldboy*" -exec rm {} \;  -o -type f -name "oldgirl*" -exec rm {} \;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值