linux压缩文件和解压文件,一篇就够了 您所在的位置:网站首页 什么是归档号 linux压缩文件和解压文件,一篇就够了

linux压缩文件和解压文件,一篇就够了

#linux压缩文件和解压文件,一篇就够了| 来源: 网络整理| 查看: 265

目录

1.前言

2.tar命令:归档

3.gzip和bzip2命令:压缩

4.zip/unzip,rar/unrar,压缩/解压zip和rar文件

5.总结

1.前言

linux在网络上传输文件的时候,通常会先压缩再传输,然后解压。

说到压缩文件,如果是 Windows 用户,那应该对 rar 和 zip 两种格式不陌生。一般在 Windows 下,我们会使用 WinRAR,7-Zip 等压缩解压的软件。这些软件中有些是收费的,比如 WinRAR。

在 Linux 下,我们有很多免费的压缩解压软件可供选择,比如 gzip 和 bzip2。不过,gzip 和 bzip2,不能同时压缩多个文件,一次只能压缩一个文件。

但是,Linux 的开源社群可厉害了,他们还有一个软件 tar,算是 Linux 下用得挺多的程序了吧。tar 可以同时压缩多个文件。

当然了,Linux 下也有解压 zip 和 rar 格式的软件。

2.tar命令:归档

首先,我们需要弄清楚两个概念:打包和压缩。

打包 : 是将多个文件变成一个总的文件,这个总的文件我们通常称为 archive,是英语“存档,归档”的意思。压缩 : 是将一个大文件通过某些压缩算法变成一个小文件。

所以,其实引言中所提到的 tar 命令,gzip 和 bzip2 命令是这样使用的:

用 tar 将多个文件归档为一个总的文件,称为 archive。用 gzip 或 bzip2 命令将 archive 压缩为更小的文件。

可以用下图来描述此过程:

所以,我们会首先介绍 tar 命令,然后再学习 gzip 和 bzip2 命令。当然了,我们也会学习如何在 Linux 下解压 zip 和 rar 格式的文件。

             zip 和 rar 格式是可以同时归档和压缩的。

将多个文件合并为一个文件

我们新建一个目录,touch命令新建三个文件:file1.txt file2.txt file3.txt

[tmn@sdw2 test]$ mkdir tar [tmn@sdw2 test]$ cd tar [tmn@sdw2 tar]$ touch file1.txt file2.txt file3.txt [tmn@sdw2 tar]$ ls file1.txt file2.txt file3.txt [tmn@sdw2 tar]$

接下来,我们就可以用 tar 命令对这三个文件进行归档。

-cvf:创建一个 tar 归档

[tmn@sdw2 tar]$ tar -cvf file.tar . ./ ./file1.txt ./file2.txt ./file3.txt tar: ./file.tar: 文件是归档文件;未输出 [tmn@sdw2 tar]$ ls file1.txt file2.txt file3.txt file.tar

tar 命令的这三个参数分别表示:

c:create 的缩写,表示“创建”。v:verbose 的缩写,表示“冗余”。会显示操作的细节。f:file 的缩写,表示“文件”。指定归档文件。

因为加了 v 选项,所以列出了被归档的三个文件。

难道我们一定要先把三个文件都放到 sorting 这样的一个目录,才能用 tar 归档吗?

不是的,我们也可以直接对文件进行归档操作,不需要先把所有文件放到一个目录里,如下:

tar -cvf file.tar file1.txt file2.txt file3.txt

 就会把 file1.txt,file2.txt,file3.txt 归档为 file.tar。

-tf:显示归档里的内容,并不解开归档

[tmn@sdw2 tar]$ tar -tf file.tar ./ ./file1.txt ./file2.txt ./file3.txt

 可以看到,file.tar 这个文件里,有三个文件:file1.txt,file2.txt,file3.txt

一般在建立归档之前,最好先把所有文件放置到一个目录里。因为假如你拿到的归档文件是不包含目录的(如上面 tar -cvf archive.tar file1.txt file2.txt file3.txt 这样),并且里面有成百上千个文件,你将其解压到你的home目录,那会乱成一团的。

-rvf:追加文件到归档

tar -rvf file.tar file4.txt

 表示将 file4.txt 这个文件添加到 file.tar 归档中。

-xvf:解开归档

tar -xvf file.tar 3.gzip和bzip2命令:压缩

现在我们已经学会用 tar 命令来创建一个归档(archive)了,接下来,我们就学习如何压缩这个归档吧。

Linux 中常用的压缩命令是 gzip 和 bzip2,它们的功能类似。

gzip:比较常用。bzip2:不是那么常用。压缩率比 gzip 更大,但是更耗时。

这两个命令的用法也很简单,只需传入要压缩的归档作为参数。经过压缩,归档的后缀名也会改变。

.tar.gz:这是用 gzip 命令压缩后的文件后缀名。.tar.bz2:这是用 bzip2 命令压缩后的文件后缀名。

两个压缩命令的用法如下:

gzip file.tar bzip2 file.tar

分别生成.tar.gz  .tar.bz

如果要对这两个命令生成的压缩文件分别进行解压,可以使用 gunzip 和 bunzip2 两个命令:

gunzip file.tar.gz bunzip2 file.tar.bz2

生成.tar格式的归档文件

用 tar 命令同时归档和压缩

之前我们只介绍了 tar 命令的归档作用,其实我们可以用 tar 命令同时完成归档和压缩的操作,一气呵成。

当然了,也就是给 tar 命令多加一个选项参数,使之完成归档操作后,还是调用 gzip 或 bzip2 命令来完成压缩操作。

 

-zcvf:归档,然后用 gzip 来压缩归档

tar -zcvf file.tar.gz .

 一步到位,从 file文件,归档、压缩,生成 file.tar.gz 文件。

要解压,也可以一步到位。

tar -zxvf file.tar.gz

同理 bzip2的是

tar -jcvf file.tar.bz2 . tar -jxvf file.tar.bz2

zcat / bzcat,zmore / bzmore,zless / bzless :显示用 gzip / bzip2 压缩的文件的内容

cat,more 和 less 这三个命令我们已经很熟悉了,是用于显示文件内容。

如果是压缩文件,比如我们上面生成的 sorting.tar.gz,如果直接用 cat,more 或 less 命令来显示,会显示乱码:

zcat查看就没有乱码:

4.zip/unzip,rar/unrar,压缩/解压zip和rar文件

尽管 .tar.gz 和 .tar.bz2 结尾的压缩文件在 Linux 世界很常见,但是如果某个 Windows 用户给你发送压缩文件,大部分情况可能是 .zip 或 .rar 结尾的压缩文件,那么在 Linux 下如何解压这类来自 Windows 世界的“外来生物”呢?

不必担心,我们可以用 unzip 和 unrar 命令来分别解压 .zip 和 .rar 格式的压缩文件。

zip / unzip :压缩 / 解压 zip 文件

一般 Linux 发行版(Ubuntu 自带了 unzip 这个命令 )中默认没有安装这个程序,我们可以用以下命令来安装:

sudo apt install unzip # 这是在 Debian 一族中的安装方式

安装完之后,要解压 .zip 格式的压缩文件,可以这样:

unzip file.zip

 很简单吧。

如果不想解开 .zip 文件,只想看其中的内容的话,可以加上 -l 参数:

unzip -l file.zip

 在 Linux 中,有时候我们也需要创建 .zip 格式的文件,我们可以安装 zip 这个程序(Ubuntu 自带了 zip 这个命令 ):

sudo apt install zip # 这是在 Debian 一族中的安装方式

 我们来压缩一下刚才的文件试试:

zip -r file.zip .

 

注意:这里有一个 -r 参数(r 是 recursively 的缩写,表示“递归地”),须要加上。如果不加,则只会压缩空文件夹而已。加上 -r 参数,则会递归压缩目录和子目录中的所有文件。

 rar / unrar:压缩 / 解压 rar 文件

类似于 unzip,安装 unrar 的命令如下(Ubuntu 一般没有自带 unrar 这个命令):

sudo apt install unrar # 这是在 Debian 一族中的安装方式

 安装完之后,要解压 .rar 格式的压缩文件,可以这样:

unrar e file.rar

 可以看到,e 这个选项参数(e 是 extract 的缩写,表示“提取,取出”)前面没有 -(短横)。

 如果不想解开 .rar 文件,只想看其中的内容的话,可以加上 l 参数(是的,也不加 - ):

unrar l file.rar

 在 Linux 中,有时候我们也需要创建 .rar 格式的文件,我们可以安装 rar 这个程序(Ubuntu 一般没有自带 rar 这个命令):

sudo apt install rar # 这是在 Debian 一族中的安装方式

 我们来压缩一下刚才的文件试试:

rar a file.rar .

 我们用了 a 参数,a 是 add 的缩写,表示“添加”。

可以看到,rar 这个软件不是免费的,我们目前用的是试用版(Trial version):

RAR 5.50 Copyright (c) 1993-2017 Alexander Roshal 11 Aug 2017 Trial version Type 'rar -?' for help Evaluation copy. Please register.

 你可以购买 rar。当然了,我们只是演示一下,暂时用试用版也足够了。

5.总结 打包 : 是将多个文件变成一个总的文件,这个总的文件我们通常称为 archive,是英语“存档,归档”的意思。Linux 下常用的打包命令是 tar。压缩 : 是将一个大文件通过某些压缩算法变成一个小文件。Linux 下常用的压缩命令是 gzip 和 bzip2。Linux 中有多种方式来压缩文件。可以用 tar 命令先将文件打包(tar -cvf archive.tar archive/),再用 gzip 或 bzip2 命令来压缩(gzip archive.tar 或 bzip2 archive.tar)。也可以将文件一次性打包压缩(tar -zcvf archive.tar.gz archive 或 tar -jcvf archive.tar.bz2 archive)。zcat,zmore,zless 用于显示用 gzip 压缩的文件的内容。bzcat,bzmore,bzless 用于显示用 bzip2 压缩的文件的内容。zip 和 unzip 命令分别用于压缩和解压 zip 文件。rar 和 unrar 命令分别用于压缩和解压 rar 文件。

 

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有