centos 文档的压缩和打包 gzip,bzip2,xz,zip,unzip,tar(gzip、bzip2、xz),tgz 第九节课
tar、zip、tar -czvf 不会动源文件,gzip和bz2都会把源文件压缩,然后删除源文件
gzip -f wpblogfull.$d.sql 会删除原来的sql文件并生成wpblogfull.$d.sql.gz
上半节课
gzip filename
gzip -d filename.gz
bzip2 filename
bzip2 -d filename.bz2
xz filename
xz -d filename.xz
zip -r dir.zip dir/
zip dir.zip 2.txt
unzip -d /tmp/ filename.zip
下半节课
tar -zcvf test.tar -C /tmp/
tar -zcvf 1.tar.gz 1
tar -zxvf 1.tar.gz
tar -zxvf 1.tgz
tar -jcvf 1.tar.bz2 1
tar -jxvf 1.tar.bz2
tar -Jcvf dir.tar.xz dir/
tar -Jxvf file.tar.xz
tar --exclude 1.txt --exclude 123/ -czvf 1.tar.gz dir/
上传到Linux服务器一定要压缩成zip格式,不要压缩成rar格式
cat /etc/init.d/* >2.txt :将所有脚本文件里面的内容都放到2.txt
cp 2.txt 2.txtbak 备份
gzip压缩格式
gzip filename (源文件不保留)
gzip -d filename.gz
参数
-c 将输出写到标准输出上,并保留原有文件。
-f 强制进行压缩和解压缩,即使文件有链接或者相同的文件已经存在
-d 将压缩文件解压。
-l 对每个压缩文件,显示下列字段:压缩文件的大小;未压缩文件的大小;压缩比;未压缩文件的名字
-r 递归式地查找指定目录并压缩其中的所有文件或者是解压缩。
-t 测试,检查压缩文件是否完整。
-v 对每一个压缩和解压的文件,显示文件名和压缩比。
-num 用指定的数字 num 调整压缩的速度,-1 或 --fast 表示最快压缩方法(低压缩比),-9 或--best表示最慢压缩方法(高压缩比)。系统缺省值为 6。
gzip 1.txt 2.txt 3.txt
zcat filename.gz
直接查看压缩文件内容,不需要解压,和zgrep 一样可以结合管道符
zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql
bzip2压缩格式
yum install -y bzip2
bzip2 filename (源文件不保留)
bzip2 -d filename.bz2
xz压缩格式
官网链接: https://tukaani.org/xz/
我测试 一个 112M 的文件,xz 压缩完后 4.5M, gz 压缩完后 16M, biz2 缩完后7.6M.
压缩比: xz >biz2 > gzip
需要安装xz工具
yum install -y xz*
xz filename 基于LZMA算法,具有很高的压缩比,(源文件不保留)
xz -d filename.xz 等价于 unxz filename.xz ,xz -d和unxz 无任何区别,xz的作者有脑残
xz-5.2.2-1.el7.x86_64包里面包含下面命令
rpm -ql xz-5.2.2-1.el7.x86_64
/usr/bin/unxz,也是在xz包里
/usr/bin/xz
/usr/bin/xzcat ,xzcat,查看压缩文件的内容,相当于xz --decompress --stdout
/usr/bin/xzcmp
/usr/bin/xzdec
/usr/bin/xzdiff
/usr/bin/xzegrep
/usr/bin/xzfgrep
/usr/bin/xzgrep
/usr/bin/xzless
/usr/bin/xzmore
zip压缩格式
zip filename.zip filename 压缩多个文件并打包到一个压缩文件里
zip a.zip 1.txt 2.txt 3.txt
zip -r dir.zip dir/ 软链接的数据也会压缩
unzip filename.zip
unzip -d /tmp/ filename.zip 解压到指定目录
unzip 2.txt.zip -d .
解压到当前路径
unzip -l filename.zip 列出压缩包里面文件列表清单
下半节课
tar打包工具
语法:tar [OPTION...] [FILE]...
打包: tar -cvf test.tar test 其中test是文件或目录
tar -cf test.tar /test/ /usr/local/ 2.txt
tar支持三种压缩工具的压缩包和解压包,gzip、bzip2、xz
gzip: -z
bzip2: -j
xz: -J
-P:打包绝对路径,-P要放在f前: tar czvPf script.tar.gz /data/script/
-c: 表示建立包
-v 可视化
-u: 在包里增加一个新文件,如果包里面的文件跟增加的文件一样会覆盖包里面的文件,比如 tar -u 1.txt -vf test.tar
“-f 文件名”,意思是压缩后的文件名为filename, 解压时跟 “-f 文件名”,意思是解压filename.
请注意,如果是多个参数组合的情况下带有 “-f”,请把 “-f” 写到最后面。
解压包的时候怕你把根带上导致错误覆盖系统文件,所以tar包里的路径不是/etc/yumxxxxx
解包: tar -xf test.tar
-x : 解包或者解压缩 ,不管是打包还是解包,原来的文件是不会删除的,但它会默认自动覆盖当前已经存在的文件或者目录。
-C: 解压到指定目录,比如 tar -C /tmp/ -xf test.tar
其中1可以是文件也可以是目录
-z gzip压缩包,(源文件保留)
tar -czvf 1.tar.gz 1
在linux中.tgz是.tar.gz的缩写
解压.tar.gz
tar -xzvf 1.tar.gz
或
tar zxvf tpcc-mysql-src.tgz
-j bzip2压缩包,(源文件保留)
tar -cjvf 1.tar.bz2 1
bzip2压缩包解压.tar.bz2
tar -xjvf 1.tar.bz2
-J xz格式压缩包,(源文件保留)
tar -Jcvf dir.tar.xz dir/
xz格式包解压
tar -Jxvf file.tar.xz
-t :查看tar包里面的文件,不管是gz、bz2、xz压缩包,还是没压缩的包,都是用-t参数来查看
查看压缩的包内容: tar -tf 1.tar.gz 、dir.tar.xz、1.tar.bz2
查看普通包内容: tar -tf test.tar
--exclude 可以在打包的时候,排除某些文件或者目录
tar --exclude 1.txt -czvf 1.tar.gz dir/
排除多个文件或者目录
tar --exclude 1.txt --exclude 123/ -czvf 1.tar.gz dir/
--delete 删除包里面的文件:
tar --delete -f 1.tar 2.txt
f