文件打包及压缩

(1)tar常用选项

	c		//创建文件
	v		//打印详细信息
	f		//指定文件名
	z		//调用gzip压缩
	j		//调用bzip2压缩
	J		//调用xz压缩
	t		//查看压缩文件
	x		//解压

(2)打包压缩,建议对整个目录打包,而不是对目录下每个文件进行打包

tar czf etc1-gzip.tar.gz /etc				//对/etc/目录进行打包压缩,调用gzip压缩
tar cjf etc1-bzip2.tar.gz /etc				//对/etc/目录进行打包压缩,调用bzip2压缩
tar cJf etc1-xz.tar.gz /etc					//对/etc/目录进行打包压缩,调用xz压缩
注意:如果打包的目录是绝对路径会把路径的/去掉
# ll etc*
-rw-r--r-- 1 root root 15703277 May 11 16:48 etc1-bzip2.tar.gz
-rw-r--r-- 1 root root 17931062 May 11 16:47 etc1-gzip.tar.gz
-rw-r--r-- 1 root root 12649124 May 11 16:48 etc1-xz.tar.gz
#file etc1-xz.tar.gz   查看文件类型
总结:bzip2压缩速度最快,压缩比最小;xz压缩速度最快,压缩比最大

(3)解压解包

tar -tf etc1-bzip2.tar.gz				//查看压缩文件内容
tar -xvf etc1-bzip2.tar.gz				//解压压缩包
tar -xf etc1-bzip2.tar.gz -C /var/tmp	//-C重定向到/var/tmp目录下
tar -xf etc1-bzip2.tar.gz 
uzip xxx.zip							//解压zip文件				

(4)tar实战用法

1)mysql物理备份和恢复1

#tar -czf /backup/mysql_$(date +%F).tar.gz /var/lib/mysql		//打包压缩
# tar tf /backup/mysql_2018-05-11.tar.gz 			//如果打包压缩的时候目录是全路径,会默认把根/去掉
var/lib/mysql/
#rm -rf /var/lib/mysql*								//删除数据目录的所有内容
#tar xf /backup/mysql_2018-05-11.tar.gz -C /		//打包压缩的时候目录是全路径(去掉了根),恢复的时候加上/即可,一定要注意,非常棒

2)mysql物理备份和恢复2

#cd /var/lib/mysql
#tar czf /backup/mysql_$(date +%F).tar.gz *
#tar tf /backup/mysql_2018-05-11.tar.gz | head -1		//打包的时候使用的是相对路径
auto.cnf
#rm -rf /var/lib/mysql*
#tar xf /backup/mysql_2018-05-11.tar.gz -C /var/lib/mysql		//所以恢复的时候需要使用绝对路径

3)本机拷贝海量小文件方式

tar -czf - /etc | tar -xzf - -C /tmp				//创建压缩文件放到内存通过管道解压到/tmp目录下

4)host A拷贝文件(海量文件)到host B

常规方法:scp -r /etc 192.168.111.152:/tmp
建议方法:
	host B(关闭防火墙或允许执行端口) :	nc -l 8888 | tar -xzf - -C /tmp    //host B 打开一个套接字,接收这个套接字的压缩文件解压到/tmp目录
	host A : tar -czf - /etc | nc 192.168.111.152 8888                       //host A 压缩/etc目录通过套接字传给192.168.111.152这个主机
原文地址:https://www.cnblogs.com/lovelinux199075/p/9030646.html