文档的压缩和打包gzip,bzip,xz,zip,tar

[toc]

文档的压缩和打包gzip,bzip,xz,zip,tar

常见压缩文件

Windows .rar .zip .7z

Linux .zip,.gz,.bz2,.xz,.tar.gz,.tar.bz2,.tar.xz

gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。

现在我们开始准备练习,首先在在/tmp/下面创建一个目录,取名为d6z,第六章

[root@xavi-002 ~]# cd /tmp/
[root@xavi-002 tmp]# ls
1.txt    passwd.sh
2.txt    systemd-private-0068056e90c84dd2b56a5b9a8f1824ad-cups.service-01ty2L
fstab    systemd-private-0068056e90c84dd2b56a5b9a8f1824ad-vmtoolsd.service-YZRyDS
newdisk  xxx.conf
[root@xavi-002 tmp]# mkdir d6z
[root@xavi-002 tmp]# cd d6z/

接下来我们还要找一些大的文件,把/etc/下所有的conf文件

[root@xavi-002 d6z]# find /etc/ -type f -name "*conf"
[root@xavi-002 d6z]# find /etc/ -type f -name "*conf" -exec cat {} >> 1.txt \;

markmark

  • 用wc命令确认文件的字数
[root@xavi-002 d6z]# wc -l 1.txt
55668 1.txt
  • gzip 压缩,gzip-d 解压缩,解压缩之后比压缩前小,但字数是不变的
[root@xavi-002 d6z]# gzip 1.txt
[root@xavi-002 d6z]# ls
1.txt.gz
[root@xavi-002 d6z]# du -sh 1.txt.gz
508K	1.txt.gz
[root@xavi-002 d6z]# gzip -d 1.txt.gz
[root@xavi-002 d6z]# ls
1.txt
[root@xavi-002 d6z]# du -sh 1.txt
1.9M	1.txt
[root@xavi-002 d6z]# wc -l 1.txt
55668 1.txt
  • gzip -#:表示压缩等级1~9,9最好效率最高,默认是6,等级高占用CPU资源也越大。
[root@xavi-002 d6z]# gzip -9 1.txt
[root@xavi-002 d6z]# ls
1.txt.gz
[root@xavi-002 d6z]# du -sh 1.txt.gz
504K	1.txt.gz
  • 如何查找压缩文件,file,
  • 用zcat查看压缩文件
[root@xavi-002 d6z]# file 1.txt.gz
1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Sat Jan  6 20:55:20 2018, max compression
  • gzip -c 把压缩后的文件输出到标准输出设备,不去更动原始文件。
[root@xavi-002 d6z]# gzip -d 1.txt.gz //解压之前的gz文件
[root@xavi-002 d6z]# gzip -c 1.txt >  /tmp/1.txt.gz //把它输出到/root下
[root@xavi-002 d6z]# ls
1.txt
[root@xavi-002 d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@xavi-002 d6z]# file !$
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Sat Jan  6 20:55:20 2018
  • gzip -d -c 解压缩后再输出
[root@xavi-002 d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt
[root@xavi-002 d6z]# ls 
1.txt  2.txt
[root@xavi-002 d6z]# wc -l 1.txt 2.txt
  55668 1.txt
  55668 2.txt
 111336 总用量
[root@xavi-002 d6z]# du -sh *.txt
1.9M	1.txt
1.9M	2.txt

==gzip不能压缩目录==

bzip2压缩工具

以下实例为压缩,bzip2也不能压缩目录

[root@xavi-002 d6z]# bzip2 1.txt
[root@xavi-002 d6z]# ls 
1.txt.bz2  2.txt
[root@xavi-002 d6z]# du -sh 1.txt.bz2
368K	1.txt.bz2
[root@xavi-002 d6z]# du -sh 2.txt
1.9M	2.txt
  • bzip2 -d 和bunzip2 都有解压缩功能
[root@xavi-002 d6z]# bzip2 -d 1.txt.bz2
[root@xavi-002 d6z]# ls
1.txt  2.txt
[root@xavi-002 d6z]# du -sh 1.txt
1.9M	1.txt

[root@xavi-002 d6z]# bzip2 1.txt
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt
[root@xavi-002 d6z]# bunzip2 1.txt.bz2
[root@xavi-002 d6z]# ls
1.txt  2.txt
  • bzip -c 把压缩后的文件输出到标准输出设备,不去更动原始文件。
[root@xavi-002 d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[root@xavi-002 d6z]# du -sh /tmp/1.txt.bz2
368K	/tmp/1.txt.bz2
[root@xavi-002 d6z]# bzip2 -d -c /tmp/1.txt.bz2 > 3.txt
[root@xavi-002 d6z]# ls
1.txt  2.txt  3.txt
[root@xavi-002 d6z]# du -sh 3.txt
1.9M	3.txt
  • bzip -#,也有压缩级别,默认是9
[root@xavi-002 d6z]# bzip2 -8 1.txt
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt  3.txt
[root@xavi-002 d6z]# du -sh 1.txt.bz2
400K	1.txt.bz2
  • 同样,也可以file来查找压缩文件

这里有个误操作说明下

[root@xavi-002 d6z]# mv 1.txt.bz2 1.txt //w未填写完整,而是只转换了txt
[root@xavi-002 d6z]# less 1.txt
"1.txt" may be a binary file.  See it anyway? //无法用less查看
[root@xavi-002 d6z]# file 1.txt
1.txt: bzip2 compressed data, block size = 800k
[root@xavi-002 d6z]# file 2.txt
2.txt: C source, ASCII text
[root@xavi-002 d6z]# mv 1.txt 1.txt.bz2 //改为正确的格式
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt  5.txt
  • 同样,可以用bzcat查看bz2压缩文件

xz压缩工具

  • 压缩功能
[root@xavi-002 d6z]# xz 2.txt
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt.xz  3.txt  4.txt  5.txt
[root@xavi-002 d6z]# du -sh 2.txt.xz
144K	2.txt.xz
[root@xavi-002 d6z]# du -sh 3.txt
1.9M	3.txt
  • 解压缩,xz -c ,xz -d, xzcat等
[root@xavi-002 d6z]# xz -d 2.txt.xz
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt  5.txt
[root@xavi-002 d6z]# xz 2.txt
[root@xavi-002 d6z]# unxz 2.txt.xz
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt  3.txt  4.txt  5.txt
[root@xavi-002 d6z]# xz -c 2.txt > /tmp/2.txt.xz
[root@xavi-002 d6z]# xz -d -c /tmp/2.txt.xz > ./4.txt

Linux zip命令用于压缩文件。

zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。也可压缩目录

 zip 1.txt.zip  1.txt
 zip -r 123.zip  123/
 unzip 1.txt.zip
 unzip 123.zip -d /root/456/ 
 unzip -l 123.zip

文件压缩举例:zip压缩效率一般

[root@xavi-002 d6z]# zip 2.txt.zip 2.txt
  adding: 2.txt (deflated 74%)
[root@xavi-002 d6z]# ls
1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  5.txt
[root@xavi-002 d6z]# du -sh 2.txt.zip
508K	2.txt.zip
  • 同时压缩文件和目录,zip压缩之后原文件仍然存在,这里注意,如果目录有二级目录甚至更多目录时,zip命令只把二级目录压缩而已,如果想一并压缩,必须加上-r选项。
[root@xavi-002 d6z]# ls
1.txt  1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  5.txt  xavilinux
[root@xavi-002 d6z]# zip -r xavi001.zip 3.txt xavilinux
  adding: 3.txt (deflated 74%)
  adding: xavilinux/ (stored 0%)
  adding: xavilinux/1/ (stored 0%)
  adding: xavilinux/1/2/ (stored 0%)
  adding: xavilinux/1/2/3/ (stored 0%)
  adding: xavilinux/1.txt (stored 0%)
[root@xavi-002 d6z]# ls
1.txt  1.txt.bz2  2.txt  2.txt.zip  3.txt  4.txt  5.txt  xavi001.zip  xavilinux
  • unzip解压缩,由于压缩是没有消除原文件(这是和gzip,bzip2,xz都不同的地方),这里会提示你是否要覆盖原文件
[root@xavi-002 d6z]# unzip xavi001.zip
Archive:  xavi001.zip
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename:  y
error:  invalid response [ y]
replace 3.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
  inflating: 3.txt                   
 extracting: xavilinux/1.txt     
  • unzip ###.zip -d + 指定路径,压缩前后的名称是无法去更改的
[root@xavi-002 d6z]# mkdir test
[root@xavi-002 d6z]# unzip 2.txt.zip -d test/
Archive:  2.txt.zip
  inflating: test/2.txt  
  • zip压缩工具没有类似cat的查看文件命令,只能要用zip -l 查看压缩目录下的文件列表
[root@xavi-002 d6z]# unzip -l xavi001.zip
Archive:  xavi001.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
  1955595  01-07-2018 10:27   3.txt
        0  01-07-2018 10:28   xavilinux/
        0  01-07-2018 10:26   xavilinux/1/
        0  01-07-2018 10:26   xavilinux/1/2/
        0  01-07-2018 10:26   xavilinux/1/2/3/
       16  01-07-2018 10:28   xavilinux/1.txt
---------                     -------
  1955611                     6 files

tar打包工具

100M的带宽,跑满了是也就是传输理论值是12.5M/S,但是传输的文件里面有文件有目录,传输过程就比较慢了,为了提升效率引入打包机制。 用法举例:

  • [ ] tar -cvf 123.tar 123
  • [ ] tar -cvf aming.tar 1.txt 123
  • [ ] tar -xvf aming.tar
  • [ ] tar -tf aming.tar
  • [ ] tar -cvf aming.tar --exclude 1.txt --exclude 2 123
  • tar -cvf c:creat,v-verbos可视化,f 是file制定备份文件,可文件与目录一同打包,打包后原文件不存在
[root@xavi-002 d6z]# tar -cvf xavilinux.tar xavilinux
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
[root@xavi-002 d6z]# ls
1.txt      2.txt      3.txt  5.txt  xavi001.zip  xavilinux.tar
1.txt.bz2
[root@xavi-002 d6z]# tar -cvf xavilinux.tar xavilinux 1.txt 2.txt
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
2.txt
  • 解打包 tar -xvf, x即extract 从备份文件中还原文件,原来的打包文件仍然存在
[root@xavi-002 d6z]# tar -xvf xavilinux.tar
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
  • tar -tf 查看备份文件包
[root@xavi-002 d6z]# tar -tf xavilinux.tar
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
2.txt
  • tar -xvf #####.tar --exclude 目录 -exclude 文件,指定范本文件,其内含有一个或多个范本样式,让tar排除符合设置条件的文件。
[root@xavi-002 d6z]# tar -xvf xavilinux.tar
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
2.txt
[root@xavi-002 d6z]# tar -cvf xavi.tar --exclude 1 --exclude 1.txt 
2.txt

[root@xavi-002 d6z]# tar -tf xavi.tar
2.txt  //文件夹1和1.txt被过滤了
tar打包并压缩
  • [ ] tar -zcvf 123.tar.gz 123 //gz文件
  • [ ] tar -zxvf 123.tar.gz
  • [ ] tar -jcvf 123.bz2 123 //bz2文件
  • [ ] tar -jxvf 123.bz2
  • [ ] tar -Jcvf 123.xz 123 //xz文件
  • [ ] tar -Jxvf 123.xz
  • [ ] tar -tf 123.bz2 / tar -tf 123.gz / tar -tf 123.xz
[root@xavi-002 d6z]# tar -zcvf xavilinux.tar.gz xavilinux 1.txt 3.txt
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
3.txt
[root@xavi-002 d6z]# tar -jcvf xavilinux.tar.bz2 xavilinux 1.txt 3.txt
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
3.txt
[root@xavi-002 d6z]# tar -Jcvf xavilinux.tar.xz xavilinux 1.txt 3.txt
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
3.txt

mark

*tar -tf 查看所有压缩包

[root@xavi-002 d6z]# tar -tf xavilinux.tar.gz
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
3.txt
[root@xavi-002 d6z]# tar -tf xavilinux.tar.xz
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
3.txt
[root@xavi-002 d6z]# tar -tf xavilinux.tar.bz2
xavilinux/
xavilinux/1/
xavilinux/1/2/
xavilinux/1/2/3/
xavilinux/1.txt
1.txt
3.txt

转载于:https://my.oschina.net/u/3898702/blog/2223724

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值