linux find命令

linux find命令

#  定义: 根据文件的名称或者属性查找文件

语法格式: find 查找范围 参数

参数 : 
		1. -name :按照文件的名字查找文件
			* :通配符
			
		例 :查询/etc目录下名称中包含hosts文件
		[root@localhost ~]# find /etc/ -name '*hosts*'
		
		2. -iname :按照文件的大小查询文件
			+       : 大于
			-       : 小于
			没符号   : 等于
			
		例:查询/etc目录下大于/小于5M的文件
		[root@localhost ~]# find /etc/ -size +5M
		[root@localhost ~]# find /etc/ -size -5M
		
		3. -mtime :按照修改时间去查询
			+(省略不写默认为 +) :n天以前(大于n天的)
			-		   :n天以后(在n天以内的)
		
		-atime :按照访问时间去查询
		-ctime :按照属性修改时间去查询
		
		4. -user :按照用户的属主查询
		   -group:按照用户的数组查询
		   
		5. -type :按照文件的类型查询
				''' 文件类型:
                			d :文件夹
                			l :链接文件
                			f :普通文件
                			b :磁盘文件
                			c :字符文件
                			p :管道文件
                			s :套接字文件
                			
        6. -perm :按照文件的权限查询
        
        7. -inum :根据index node 号码查询
        
        8. -a :并且 (可以省略,默认是并且)
           -o :或者
         
        9. -mandepth :查询的目录深度(必须放置在第一个参数位置)
        
        10. -exec :将find处理好的结果交给其他命令进行处理。


知识储备 

1. 生成文件:
命令:dd

例:生成一个整整100M的文件:  dd if=/dev/zero of==100.txt bs=10M count=10
		if :从什么地方读
		of :写入到什么文件
		bs :每次写入多少内容
		count :写入多少次
		
2.  管道符:|
	定义: 前面一个命令的结果交给后面一个命令处理
	
3.	xargs : 把处理的文本变成以空格分隔的一行

4.	`` :提前执行命令,然后将结果交给其他命令来处理

例题:要求把/etc目录下,所有的普通文件打包压缩到/tmp目录
	[root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs`
	
	解释: 先执行``: find 找到文件类型为f(普通文件) 交给管道符后边的xargs 变成以空格隔开的一个文件。 在执行tar命令 将这一个文件打包压缩到tmp目录下。 
posted @ 2021-12-20 21:38  JasonBorn  阅读(54)  评论(0编辑  收藏  举报