Linux压缩和解压缩

编程

压缩和解压缩

  • 最早的:compress/uncompresse 文件名后缀:.Z

  • 然后是:gzip/gunzip 文件名后缀:.gz

    很久一段gzip是linux的标准压缩和解压缩算法了

  • 然后是:bzip2/bunizip2 文件名后缀:.bz2

    大文件的压缩比比gzip大一点,但是小文件的压缩比还没有gzip大,所以没能撼动gzip的地位

  • 然后是:xz/unxz 文件名后缀:.xz

    压缩比显著提高,撼动了gzip的地位

    lzma/unlama 文件名后缀:.lzma

  • 最通用的(所以操作系统都支持):zip/unzip

Linux 归档:上述压缩工具,只能对文件压缩,不能对目录压缩。要想对目录压缩,必须要归档后,再对归档文件压缩。

  • tar,cpio

gzip/gunzip/zcat

1,压缩:gzip file

压缩完成后,会自动删除原文件

# ll -h messages

-rw-------. 1 root root 915K Feb 11 22:05 messages

[root@localhost ~]# gzip messages

[root@localhost ~]# ll -h messages.gz

-rw-------. 1 root root 167K Feb 11 22:05 messages.gz

2,解压缩:gzip -d或者gunzip

解压缩完成后,会自动删除压缩文件

# gunzip messages.gz

[root@localhost ~]# ll -h messages

-rw-------. 1 root root 915K Feb 11 22:05 messages

# gzip -d messages.gz

[root@localhost ~]# ll -h messages*

-rw-r--r--. 1 root root 915K Feb 11 22:06 messages

3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9

# gzip -9 messages

[root@localhost ~]# ll -h messages.gz

-rw-r--r--. 1 root root 164K Feb 11 22:06 messages.gz

4,压缩后保留原来的文件:gzip file -c > zxx.gz

# gzip -c messages > messages.gz

[root@localhost ~]# ll -h messages*

-rw-------. 1 root root 915K Feb 11 22:05 messages

-rw-r--r--. 1 root root 167K Feb 11 22:06 messages.gz

5,不解压缩,直接查看压缩文件里的内容:zcat messages.gz

bzip2/bunzip2/bzcat

1,压缩:bzip2 file

压缩完成后,会自动删除原文件

# ll

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

# bzip2 messages

# ll

-rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2

2,解压缩:bzip2 -d或者bunzip2

解压缩完成后,会自动删除压缩文件

# bzip2 -d messages.bz2

[root@localhost ~]# ll messages

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

# bunzip2 messages.bz2

[root@localhost ~]# ll

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9

# bzip2 -9 messages

[root@localhost ~]# ll

-rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2

4,压缩后保留原来的文件:gzip file -k

# bzip2 -k messages

[root@localhost ~]# ll messages*

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

-rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2

5,不解压缩,直接查看压缩文件里的内容:bzcat messages.bz2

xz/unxz/xzcat和lzma/unlzma/lzcat

1,压缩:xz file

压缩完成后,会自动删除原文件

# xz messages

[root@localhost ~]# ll

-rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz

2,解压缩:xz -d或者unxz

解压缩完成后,会自动删除压缩文件

# xz -d messages.xz

[root@localhost ~]# ll

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

# unxz messages.xz

# ll

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9

# xz -9 messages

[root@localhost ~]# ll

-rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz

4,压缩后保留原来的文件:xz file -k

# xz -k messages

[root@localhost ~]# ll

-rw-r--r--. 1 root root 936782 Feb 11 22:06 messages

-rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz

5,不解压缩,直接查看压缩文件里的内容:xzcat messages.xz

归档

1,创建归档

-c选项:创建归档

-f选项:归档的文件名

杠可以不加,但f一定要放到最后,因为后面的参数:归档文件名是给f选项用的

# ls

anaconda-ks.cfg initial-setup-ks.cfg messages messages.xz

[root@localhost ~]# tar cf me.tar messages messages.xz

[root@localhost ~]# ls

anaconda-ks.cfg initial-setup-ks.cfg messages messages.xz me.tar

2,查看归档里的文件列表

-t选项:查看归档里的文件列表

# tar tf me.tar

messages

messages.xz

3,展开归档

-x选项:展开归档

不使用-C就是展开在当前目录,使用-C展开到指定目录。

# tar xf me.tar -C /tmp

# ls /tmp/

messages

messages.xz

4,压缩归档文件

用gzip,bzip2,xz都可以压缩归档文件

# gzip me.tar

# ll me.tar.gz

-rw-r--r--. 1 root root 228051 Feb 12 08:53 me.tar.gz

归档并压缩

归档和压缩能一起做

1,归档后,以gzip算法压缩/解压缩

  • 压缩:zcf

    # tar zcf me3.tar.gz messages messages.xz

    # ll me3.tar.gz

    -rw-r--r--. 1 root root 228044 Feb 12 11:43 me3.tar.gz

  • 解压缩:zxf

    # tar zxf me3.tar.gz

2,归档后,以bzip2算法压缩/解压缩

  • 压缩:jcf

    # tar jcf me3.tar.bz2 messages messages.xz
  • 解压缩:jxf

    # tar jxf me3.tar.bz2

3,归档后,以xz算法压缩/解压缩

  • 压缩:Jcf

    # tar Jcf me4.tar.xz messages messages.xz
  • 解压缩:Jxf

    # tar Jxf me4.tar.xz

zip/unzip:归档且压缩

# zip me.zip messages messages.xz

# unzip me.zip

c/c++ 学习互助QQ群:877684253

本人微信:xiaoshitou5854

以上是 Linux压缩和解压缩 的全部内容, 来源链接: utcz.com/z/513407.html

回到顶部