linux压缩文件和解压文件,一篇就够了 | 您所在的位置:网站首页 › 什么是归档号 › linux压缩文件和解压文件,一篇就够了 |
目录 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.tartar 命令的这三个参数分别表示: 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.bz2zcat / bzcat,zmore / bzmore,zless / bzless :显示用 gzip / bzip2 压缩的文件的内容 cat,more 和 less 这三个命令我们已经很熟悉了,是用于显示文件内容。 如果是压缩文件,比如我们上面生成的 sorting.tar.gz,如果直接用 cat,more 或 less 命令来显示,会显示乱码: zcat查看就没有乱码: 尽管 .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 实验室设备网 版权所有 |