查询命令和压缩包以及管道技术

查询命令和压缩包以及管道技术

查找文件

find [查询的路径] [匹配模式] [匹配规则]
	匹配模式:
		-name:按照名字去匹配(寻找)
			正则匹配:
				*:匹配任意数量的字符,比如以什么开头,以什么结尾的任意字符
				?:匹配一个数量的字符,比如以什么开头,以什么结尾的一个字符
------------------------------------------------------------------------------------
		-type:按照文件类型匹配(寻找)
			常见文件类型:
				f:文件
				d:文件夹
				l:软连接
				c:字符设备文件
				b:块设备文件
				s:socket文件
				p:管道技术
-----------------------------------------------------------------------------------
		-a并且(默认)两个条件都要满足
		-o或者满足一个就行
-----------------------------------------------------------------------------------
		-perm:按照文件权限匹配(寻找)
			755  :文件夹默认权限(rwxr_xr_x)
			644  :文件的默认权限(rw_r_ _r_ _)
-----------------------------------------------------------------------------------
		-user:按照文件的属主来查询
		-nouser:查询属主被删除了的文件
			userdel[用户名]删除用户
-----------------------------------------------------------------------------------
		-group:按照文件的属组来查询
		-nogroup:查询属组被删除了的文件
			groupdel[用户组名]删除用户组
-----------------------------------------------------------------------------------
		-mtime:按照修改文件时间来查询
			+:几天之前的文件+2 两天之前
        	-:几天之内的文件-2两天之内
         stat[文件名]:查看文件的各种时间
         access:访问文件时间
         modify:修改文件时间
         change:创建文件时间
		-ctime:按照创建时间查询
		-atime:按照访问时间查询	
        
-----------------------------------------------------------------------------------
		-size:按照文件大小查询
			+:大于n的文件
			-:小于n的文件
-----------------------------------------------------------------------------------
		-exec:处理匹配之后的内容
			find /tmp/ -ctime -3 -type f -exec rm -rf {} \;
			-exec  :后面直接跟语句
			{}     :代表查询到的内容的路径
			\;     : 固定搭配
-----------------------------------------------------------------------------------
		xargs:将所有的内容格式化成一行
		find /tmp/ -ctime -3 -type f | xargs -I {} rm -rf {} 
			-I :前面查询到内容的路径放在{}中
			然后执行后面语句 前面{}查询到的内容放进去,后面的{}把内容拿过来 取出来
-----------------------------------------------------------------------------------
		-c:解压至
			tar -xf /tmp/etc.tar.gz -C /mnt
			解压/tmp下的etc.tar.gz 解压至/mnt
-----------------------------------------------------------------------------------
    案例1:查询出/etc目录下的hosts文件
		[root@localhost tmp]# find /etc -name "hosts"
		/etc/hosts
    案例2:查询出/etc目录下的以ifcfg开头的文件
		[root@localhost tmp]# find /etc/ -name "ifcfg*"
        /etc/sysconfig/network-scripts/ifcfg-lo
        /etc/sysconfig/network-scripts/ifcfg-eth1
        /etc/sysconfig/network-scripts/ifcfg-eth0
    案例3:查询出/etc目录下以.conf结尾的文件
		[root@localhost tmp]# find /etc -name "*.conf"
    案例4:查询出/etc目录下,文件名中包含host的文件有哪些
		[root@localhost tmp]# find /etc/ -name "*host*"
    案例5:查询出/etc目录下,所有的普通文件。
		[root@localhost tmp]# find /etc/ -type f
    案例6:查询出/etc目录下,所有的文件夹
		[root@localhost tmp]# find /etc/ -type d
    案例7:查询出/dev/目录中的所有的块设备文件
		[root@localhost tmp]# find /dev/ -type b
    案例8:查询出/dev目录中所有的字符设备文件
		[root@localhost tmp]# find /dev/ -type c
    案例9:查询出/etc目录中文件名包含nginx的普通文件
		[root@localhost tmp]# find /etc/ -name "*nginx*" -type f
    案例10:查询出/root目录下,权限为755的文件
		[root@localhost tmp]# find /root -perm 755
    案例11:查询出属主为test666的文件
		[root@localhost tmp]# find /root -user test666
            /root/1.txt
            /root/2.txt	
    案例12:查询属主被删除了的文件
		[root@localhost tmp]# find /root -nouser
    案例13:查询属组为test666的文件
		[root@localhost tmp]# find /root -group test666
		/root/1.txt
    案例14:查询属组被删除了的文件
		[root@localhost tmp]# find /root -nogroup
        /root/2.txt
    案例15:查询2天以前修改过的文件
		[root@localhost tmp]# find /tmp -mtime +2
    案例16:查询2天以内创建的文件
		[root@localhost tmp]# find /tmp/ -ctime -2
    案例17:查询2天以内访问过的文件
		[root@localhost tmp]# find /tmp/ -atime -2
    案例18:查询大于1M的文件		
		[root@localhost tmp]# find /tmp/ -size +1M
    案例19:查询小于1M的文件
		[root@localhost tmp]# find /tmp/ -size -1M
    案例20:查询在3天以内创建的文件,并删除
		1.[root@localhost tmp]# find /tmp -ctime -3 -type f -exec rm -rf {} \;
		2.[root@localhost tmp]# find /tmp -ctime -3 -type f | xargs -I {} rm -rf {}
    练习1:要求将所有3天内创建的普通文件加上.bak后缀
    	1.[root@localhost tmp]# find /tmp/ -ctime -3 -type f -exec mv {} {}.bak \;
    	2.[root@localhost tmp]# find /tmp/ -ctime -3 -type f | xargs -I {} mv {} {}.bak

linux系统压缩包

gzip(常用):压缩软件,原文件删除,生成新压缩包文件,不能打包目录
	gzip[压缩文件的路径]
	解压:gzip -d [压缩包路径]
	gzip比bzip压缩的更狠,压缩率更高
-----------------------------------------------------------------
bzip:压缩软件,原文件删除,生成新压缩包文件,不能打包目录
	bzip2[压缩文件的路径]
	解压:gzip2 -d [压缩包路径]
-----------------------------------------------------------------	
tar (常用):打包文件,可以打包目录文件,不会删除原文件,
可以压缩,但是文件内容不会变小,会变大,因为有许多其他内容
所以tar一般和gzip或者bzip共同使用
	tar[参数][压缩文件的路径]
	参数:
		-f  : 指定压缩包名称 有其他参数时,他在最后面,
			
         -c  : 打包文件

        -z  : 指定使用gzip压缩,一般使用gzip压缩的文件都以.tar.gz作为扩展名

        -j  : 指定使用bzip2压缩,一般使用bzip2压缩的文件都以.tar.bz2作为扩展名

        -v  : 显示压缩包压缩的过程

        -x  : 解压,不需要指定压缩包的压缩类型,它会自动匹配压缩包的类型自行解压。

        -P  :当压缩包中存在根目录时,自动移除根目录 大写P

        -t  : 查看压缩包中的内容
-----------------------------------------------------------------
zip
练习:将/etc目录中的所有的普通文件压缩成/tmp/etc.tar.gz文件
	[root@localhost tmp]# tar -czvPf /tmp/etc.tar.gz $(find /etc/ -type f | xargs)
		-czvPf:打包,指定gzip 压缩过程,移除根目录,指定压缩包名称
		$(这里面先执行,相当于数学里的括号)
	
	然后可以查看一下里面文件
	[root@localhost tmp]# tar -tf etc.tar.gz 

管道技术

传输数据,前一个命令执行的结果给下一个命令

案例一 :删除/tmp目录下,一天以内创建的文件
	[root@localhost tmp]# find /tmp/ -ctime -1 -type f | xargs -I {} rm -rf {}
案例二:将etc中所有的普通文件,复制到/tmp目录中
	[root@localhost tmp]# find /etc/ -type f | xargs -I {} cp -r {} /tmp 
		记得加-I
posted @ 2021-09-28 20:03  迪迦张  阅读(42)  评论(0编辑  收藏  举报