文档章节

压缩与解压缩

Linux学习笔记
 Linux学习笔记
发布于 2018/05/25 21:46
字数 2226
阅读 22
收藏 0

压缩与解压缩

·常用的压缩格式: .zip .gzip .bzip2 .tar.gz .tar.bz2 xz

gzip压缩工具 不能压缩目录,只可以压缩文件

  • gzip 源文件 压缩为 .gz 格式的压缩文件,源文件会消失
  • gzip -c 源文件 > 压缩文件 压缩为.gz格式,源文件保留
  • gzip -r 目录 压缩目录下所有的子文件,但是不能压缩目录。
  • gzip -d 压缩文件 解压缩文件
  • gzip -1-9 文件名 指定压缩级别,默认是6级别,数字越大耗费的CPU资源越大。
  • gunzip 压缩文件 解压缩文件

#zcat 压缩文件 查看压缩文件的内容

1.gzip 源文件

[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# gzip test.txt 
[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt.gz

在使用命令 gzip test.txt 后源文件text.txt消失了,压缩后的文件为test.txt.gz

2.gzip -c 源文件 > 压缩文件

[root@xuexi--01 ~]# touch 1.txt
[root@xuexi--01 ~]# ls
1.txt  abc  anaconda-ks.cfg  test.txt.gz
[root@xuexi--01 ~]# gzip -c 1.txt > 1.txt.gz
[root@xuexi--01 ~]# ls
1.txt  1.txt.gz  abc  anaconda-ks.cfg  test.txt.gz

在使用命令 gzip -c 1.txt > 1.txt.gz 源文件保留,并且成功压缩了 1.txt 为 1.txt.gz

3.gzip -r 目录

[root@xuexi--01 ~]# ls
1.txt  1.txt.gz  abc  anaconda-ks.cfg  test.txt.gz
[root@xuexi--01 ~]# ls abc/
12.txt
[root@xuexi--01 ~]# gzip -r abc/
[root@xuexi--01 ~]# ls abc/
12.txt.gz

在使用命令 gzip -r abc/ 时,目录并没有被压缩,只是压缩的目录里面的子文件12.txt,压缩后的文件为12.txt.gz

4.gzip -d 压缩文件 解压缩命令

[root@xuexi--01 ~]# ls
1.txt.gz  abc  anaconda-ks.cfg  test.txt.gz
[root@xuexi--01 ~]# gzip -d 1.txt.gz 
[root@xuexi--01 ~]# gzip -d test.txt.gz 
[root@xuexi--01 ~]# ls
1.txt  abc  anaconda-ks.cfg  test.txt

在使用 gzip -d 1.txt.gz gzip -d test.txt.gz 命令时,成功将文件解压缩,压缩包消失。

5.gunzip 压缩文件

[root@xuexi--01 ~]# cd abc/
[root@xuexi--01 abc]# ls
12.txt.gz
[root@xuexi--01 abc]# gunzip 12.txt.gz 
[root@xuexi--01 abc]# ls
12.txt

如果需要解压缩目录里面的所有子文件,可以使用 gunzip -r 目录名

bzip.bz2压缩工具 不能压缩目录

  • bzip2 源文件 压缩为 .bz2 的格式,不保留源文件
  • bzip2 -k 源文件 压缩后保留源文件
  • 压缩级别为1-9,默认为9
  • bzip2 -c 源文件 > 压缩文件

1.bzip2 源文件

[root@xuexi--01 ~]# bzip2 1.txt 
[root@xuexi--01 ~]# ls
1.txt.bz2  abc  anaconda-ks.cfg  test.txt

在使用 bzip2 1.txt 时,源文件会消失,已经成功将1.txt文件压缩为1.txt.bz2。源文件 1.txt 文件消失。

2.bzip2 -k 源文件

[root@xuexi--01 ~]# bzip2 -k test.txt 
[root@xuexi--01 ~]# ls
1.txt.bz2  abc  anaconda-ks.cfg  test.txt  test.txt.bz2

在使用 bzip2 -k test.txt 成功将test.txt 文件压缩为test.txt.bz2 而且源文件保留。 bzip2 不支持 -r 选项 是不支持压缩目录以及目录下的子文件的。

3.bzip2 -c 源文件 > 压缩文件

[root@xuexi--01 ~]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[root@xuexi--01 ~]# ls /tmp/
1.txt.bz2

使用 bzip2 -c 1.txt > /tmp/1.txt.bz2 命令,将1.txt 文件指定到 /tmp/ 下压缩,可以指定压缩文件的路径。

4.bzip -d 压缩文件 -k 保留压缩文件

[root@xuexi--01 ~]# ls
1.txt.bz2  abc  anaconda-ks.cfg  test.txt.bz2
[root@xuexi--01 ~]# bzip2 -d -k 1.txt.bz2 
[root@xuexi--01 ~]# ls
1.txt  1.txt.bz2  abc  anaconda-ks.cfg  test.txt.bz2

在使用命令 bzip2 -d -k 1.txt.bz2 时,成功将1.txt.bz2文件解压缩为 1.txt 如果不加 -k选项不保留原压缩文件,加上 -k后保留原压缩文件。

5.bunzip2 压缩文件 -k 保留压缩文件

[root@xuexi--01 ~]# ls
1.txt  1.txt.bz2  abc  anaconda-ks.cfg  test.txt.bz2
[root@xuexi--01 ~]# bunzip2 -k test.txt.bz2 
[root@xuexi--01 ~]# ls
1.txt  1.txt.bz2  abc  anaconda-ks.cfg  test.txt  test.txt.bz2

在使用命令 bunzip -k test.txt.bz2 时,成功将压缩文件test.txt.bz2 解压缩为 test.txt。如果不加 -k选项不保留原压缩文件,加上 -k后保留原压缩文件。

xz 压缩工具 不支持压缩目录以及目录里面的子文件

  • xz 源文件
  • xz -c 源文件 > 压缩文件
  • xz -d 压缩文件 解压缩命令
  • unxz 压缩文件 解压缩命令
  • 支持1-9的压缩级别
  • -k压缩/解压缩时加-k 保留源文件
#xzcat 查看xz压缩文件内容的命令
[root@xuexi--01 ~]# xz 1.txt 
[root@xuexi--01 ~]# ls
1.txt.xz  abc  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# xz -k test.txt 
[root@xuexi--01 ~]# ls
1.txt.xz  abc  anaconda-ks.cfg  test.txt  test.txt.xz
[root@xuexi--01 ~]# xz -c test.txt > /tmp/text.txt.xz
[root@xuexi--01 ~]# ls -d /tmp/text.txt.xz 
/tmp/text.txt.xz
[root@xuexi--01 ~]# xz test.txt 
[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt.xz
[root@xuexi--01 ~]# unxz test.txt.xz 
[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# xz -d -k test.txt.xz 
[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt  test.txt.xz

xz 压缩工具使用方法跟 gzip bzip2 命令类似。

zip 压缩工具 可以压缩目录

  • zip 压缩文件名 源文件
  • zip -r 压缩文件名 源目录
  • unzip 压缩文件
  • unzip 压缩文件 -d 指定的目标路径
  • unzip -l 压缩文件 显示压缩文件内所包含的文件

1.zip 压缩文件名 源文件

[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# zip test.txt.zip test.txt 
  adding: test.txt (stored 0%) 因为文件为空文件,所以这边压缩的百分比显示为0

2.zip -r 压缩文件名 源文件

[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# ls abc/
12.txt
[root@xuexi--01 ~]# zip -r abc.zip abc/
  adding: abc/ (stored 0%)
  adding: abc/12.txt (stored 0%)
[root@xuexi--01 ~]# ls abc
12.txt
[root@xuexi--01 ~]# ls
abc  abc.zip  anaconda-ks.cfg  test.txt 

在使用 zip -r abc.zip abc 时,将abc 目录成功压缩,并且压缩abc 目录里面的子文件。

3.unzip 压缩文件

[root@xuexi--01 ~]# ls
abc.zip  anaconda-ks.cfg  test.txt.zip
[root@xuexi--01 ~]# unzip test.txt.zip 
Archive:  test.txt.zip
 extracting: test.txt                
[root@xuexi--01 ~]# unzip abc.zip 
Archive:  abc.zip
   creating: abc/
 extracting: abc/12.txt              
[root@xuexi--01 ~]# ls
abc  abc.zip  anaconda-ks.cfg  test.txt  test.txt.zip

使用unzip命令,可以是解压缩文件也可以解压缩目录。

4.unzip 压缩文件 -d 目标路径

root@xuexi--01 ~]# mkdir 123
[root@xuexi--01 ~]# unzip test.txt.zip -d ./123/
Archive:  test.txt.zip
 extracting: ./123/test.txt          
[root@xuexi--01 ~]# ls 123/
test.txt

使用命令unzip test.txt.zip -d ./123/ 将test.txt.zip压缩文件解压缩到 123 目录下

5. unzip -l 压缩文件

[root@xuexi--01 ~]# unzip -l abc.zip 
Archive:  abc.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  05-24-2018 22:03   abc/
        0  05-24-2018 21:35   abc/12.txt
---------                     -------
        0                     2 files

打包命令 tar

  • tar -cvf 打包文件名 源文件

选项: -c 打包 -v 显示过程 -f 指定打包后的文件名 -x 解打包

1.tar -cvf 打包文件/目录

[root@xuexi--01 ~]# ls
abc  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# tar -cvf abc.tar abc
abc/
abc/12.txt
[root@xuexi--01 ~]# ls
abc  abc.tar  anaconda-ks.cfg  test.txt

将abc 目录打包成abc.tar 后就可以使用 gzip bzip2 压缩工具进行压缩了

[root@xuexi--01 ~]# ls
abc  abc.tar  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# gzip abc.tar 
[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# gzip -d abc.tar.gz 
[root@xuexi--01 ~]# ls
abc  abc.tar  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# bzip2 abc.tar 
[root@xuexi--01 ~]# ls
abc  abc.tar.bz2  anaconda-ks.cfg  test.txt

先打包再压缩就解决了压缩目录的问题

2.tar -xvf 解打包文件/目录

[root@xuexi--01 ~]# ls
abc.tar  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# tar -xvf abc.tar 
abc/
abc/12.txt
[root@xuexi--01 ~]# ls
abc  abc.tar  anaconda-ks.cfg  test.txt

3. .tar.gz 压缩格式

.tar.gz格式是先打包为.tar格式,再压缩为.gz格式
命令:tar -zcvf 压缩包名.tar.gz 源文件
  • -z :压缩为.tar.gz 格式

  • 支持压缩多个文件: tar -zcvf 压缩包名.tar.gz 文件1 文件2 。

  • 在压缩包名.tar.gz 前加上路径,可以指定压缩文件的位置。(压缩包名可更改)

命令:tar -zxvf 压缩包名.tar.gz
  • -x 解压缩.tar.gz格式
  • -t 查看压缩包里面的内容
  • -C 指定解压缩文件的位置 tar -zxvf 压缩文件包名.tar.gz -C 解压缩文件指定位置的路径

1.使用tar -zcvf 压缩包名.tar.gz 源文件 压缩

[root@xuexi--01 ~]# tar -zcvf abc.tar.gz abc
abc/
abc/12.txt
[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# rm -rf abc
[root@xuexi--01 ~]# ls
abc.tar.gz  anaconda-ks.cfg  test.txt
[root@xuexi--01 ~]# tar -zxvf abc.tar.gz 
abc/
abc/12.txt
[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt

2.指定压缩位置

[root@xuexi--01 ~]# ls 
abc  abc.tar.gz  anaconda-ks.cfg  test.txt  test.txt.tar.bz2
[root@xuexi--01 ~]# tar -zcvf /tmp/abc.tar.gz abc
abc/
abc/12.txt
[root@xuexi--01 ~]# ls /tmp/
abc.tar.gz

3.打包多个文件压缩

[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt  test.txt.tar.bz2
[root@xuexi--01 ~]# tar -zcvf /tmp/123.tar.gz abc anaconda-ks.cfg 
abc/
abc/12.txt
anaconda-ks.cfg
[root@xuexi--01 ~]# ls /tmp/
123.tar.gz

4.解压缩到指定位置

[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt  test.txt.tar.bz2
[root@xuexi--01 ~]# tar -zxvf abc.tar.gz -C /tmp/
abc/
abc/12.txt
[root@xuexi--01 ~]# ls /tmp/
abc

使用 -C 选项将压缩文件包abc.tar.gz 成功解压缩到/tmp/目录下

5.不解压并且查看压缩包里面的内容

[root@xuexi--01 ~]# tar -ztvf /tmp/123.tar.gz 
drwxr-xr-x root/root         0 2018-05-24 22:03 abc/
-rw-r--r-- root/root         0 2018-05-24 21:35 abc/12.txt
-rw------- root/root      1257 2018-05-05 05:53 anaconda-ks.cfg

6. .tar.bz2压缩格式

命令:tar -jcvf 压缩包名.tar.bz2 源文件

-z :压缩为.tar.bz2 格式

命令:tar -jxvf 压缩包名.tar.bz2

-x 解压缩.tar.bz2格式

[root@xuexi--01 ~]# tar -jcvf test.txt.tar.bz2 test.txt 
test.txt
[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt  test.txt.tar.bz2
[root@xuexi--01 ~]# rm -rf test.txt
[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt.tar.bz2
[root@xuexi--01 ~]# tar -jxvf test.txt.tar.bz2 
test.txt
[root@xuexi--01 ~]# ls
abc  abc.tar.gz  anaconda-ks.cfg  test.txt  test.txt.tar.bz2
# 使用.tar.bz2 打包压缩与.tar.gz 使用方法一样,只需要记住: .tar.gz 压缩/解压缩的时候使用的选项为 z , 而.tar.bz2 压缩/解压缩的使用使用的 j 。

© 著作权归作者所有

Linux学习笔记
粉丝 7
博文 48
码字总数 129642
作品 0
临汾
私信 提问
小蚂蚁学习Linux(6)——压缩与解压缩命令详解

在Linux中常用的压缩格式有以下几个:.zip .gz .bz2 .tar.gz tar.bz2。首先先解释前三个。 .zip格式的压缩: zip 压缩文件名 原文件名 如:zip abc.zip abc 后缀名是一定要写的,虽然Linux不...

嗜学如命的小蚂蚁
2015/11/01
168
0
Snappy Java API简介

Snappy是Google开源的压缩/解压缩库。和其他压缩库相比,snappy的压缩率并不是最高的,兼容性也并非最好的。相反,它的诞生旨在以极高的压缩/解压缩速率提供合理的压缩率。Snappy官指出:在6...

xtof
2019/01/29
24
0
Linux文件压缩:gzip、bzip2、xz

常见压缩格式Windows:.rar、.zip、.7zLinux :.zip、.gz、.bz2、.xz、.tar.gz、.tar.bz2、.tar.xz 一、gzip压缩命令 gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,...

BatmanLinux
2018/01/05
0
0
Java压缩技术(一) ZLib

应好友需要,整理一下Java的压缩算法,先从ZLib开始。 相关链接: Java压缩技术(一) ZLib Java压缩技术(二) ZIP压缩——Java原生实现 Java压缩技术(三) ZIP解压缩——Java原生实现 Ja...

村长大神
2014/11/05
130
0
6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具

6.1 压缩打包介绍 6.2 gzip压缩工具 6.3 bzip2压缩工具 6.4 xz压缩工具 6.1 压缩打包介绍 文件压缩的理由: 节省空间 方便传输 节省带宽资源 常见的压缩文件的后缀名: Windows : .rar、.zip、...

JasonYan86
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Elasticsearch系列---索引管理

概要 Elasticsearch让索引创建变得非常简单,只要索引一条新的数据,索引会自动创建出来,但随着数据量的增加,我们开始有了索引优化和搜索优化的需求之后,就会发现自动创建的索引在某些方面...

清茶豆奶
25分钟前
4
0
MAMP Pro for Mac(PHP/MySQL开发环境)

[名称]:MAMP Pro for Mac [大小]: 11.14 MB [语言]:英文 [测试环境]: Mac OS 10.15.x [下载链接]:https://www.macdown.com/mac/1676.html 简介 一款包含Macintosh、Apache、MySQL和PHP...

麦克虾仔
29分钟前
1
0
Numpy处理图片方法

在进行图像领域的深度学习的时候经常需要对图片进行处理,包括图像的翻转,压缩,截取等,一般都是用Numpy来处理。处理起来也很方便。 In[3] # 导入需要的包 import numpy as np import matp...

北方的郎
今天
18
0
AMD集中擢升高管:从Intel挖了个高手

  1 月 17 日,AMD 官方宣布多项人事升迁、新人任命,擢升了四位高级副总裁:   AMD 同时还宣布, 聘请行业资深人士 Daniel McNamara 出任高级副总裁兼服务器业务部总经理,负责在第二代...

水果黄瓜
今天
10
0
什么是泛型?

一、泛型的概念 泛型是 Java SE5 出现的新特性,泛型的本质是类型参数化或参数化类型,在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型。 二、泛型的意义 一般的...

hncboy
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部