文件归档与压缩
归档
归档(archiving)就是将许多文件(或目录)打包成一个文件。
归档的目的就是方便备份、还原及文件的传输操作。
Linux操作系统的标准归档命令是tar(tape archive)。
tar命令的功能是将多个文件(也可有目录)放在一起存放到一个磁带或磁盘归档文件中,
并且将来可以根据需要只还原归档文件中的某些指定的文件。
tar命令默认并不进行文件的压缩。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| tar [选项]... [归档文件名]... 必须至少使用如下选项中的一个: c:创建一个新的tar文件。 t:列出tar文件中内容的目录。 x:从tar文件中抽取文件。 f:指定归档文件或磁带(也可能是软盘)设备(一般都要选) (在RHEL 4之前的版本中规定在f选项之后必须紧跟着文件名而不能再加其他参数, 但是从RHEL 4开始已经取消了这一限制。) 以下为可选的选项: v:显示所打包的文件的详细信息(v是verbose) (执行过程中会显示所有打包的文件和目录) z:使用gzip压缩算法来压缩打包后的文件。 「$ tar cvfz arch.tar.gz dir2arch」 j:使用bzip2压缩算法来压缩打包后的文件。 「$ tar cvfj arch.tar.bz2 dirarch」 【注意】在tar命令中,所有的选项之前都不能使用前导的“-”。
|
创建新的归档文件:c\[v\]f
1 2 3 4 5
| $ tar cvf arch.tar dir2arch # File to be archived should be a RELATIVE path dir2arch/ dir2arch/learning.txt dir2arch/name.txt ……
|
查看归档文件内容:t\[v\]f
1 2 3 4 5 6 7 8 9 10 11 12
| $ tar tf arch.tar dir2arch/ dir2arch/learning.txt dir2arch/name.txt …… # 可以在tar命令中再加入v命令来显示文件更加详细的信息(like 「ls -l」): $ tar tvf arch.tar drwxrwxr-x User/User 0 2010-02-04 05:09:43 dir2arch/ -rw-r--r-- User/User 4720 2010-02-04 05:07:22 dir2arch/learning.txt -rw-rw-r-- User/User 84 2010-02-04 05:07:22 dir2arch/name.txt ……
|
解开打包好的文件:x\[v\]f
[⚠️]解开前要将工作目录切换到打包时所在的目录,才能保证抽取的文件放回到原来的位置。
1 2 3 4 5 6
| $ tar xvf arch.tar dir2arch/ dir2arch/learning.txt dir2arch/name.txt dir2arch/flowers.JPG dir2arch/dog.JPG ……
|
压缩
进行文件压缩的主要目的是缩小文件的大小。
一般对正文文件进行压缩之后,文件的大小可以被压缩大约75%。
但是二进制的文件,如图像文件通常不会被压缩多少。
Linux系统中两组常用的压缩工具:
gzip \ gunzip -> [*.gz]
[⚠️]用gzip不能压缩目录
用gzip来压缩文件,就必须使用gunzip来解压缩。
它们是Linux系统上标准的压缩和解压缩工具,
gzip对正文文件的压缩比一般超过75%
1 2 3 4 5 6
| gzip [选项] [压缩文件名…] 若不用-c则会压缩源文件(把原来多foo.txt变成一个foo.txt.gz) -v:在屏幕上显示出文件的压缩比(v是verbose的第1个字母)。 -c:保留原来的文件,而新创建一个压缩文件(要重定向出来),其中压缩文件名以.gz结尾。 (gzip -vc bar.txt > foobar.gz) 解压缩时,输入gunzip空格后跟要解压缩的文件,如命令gunzip arch.gz。
|
bzip2 \ bunzip2 ->[*.bz2]
用bzip2压缩,必须用bunzip2解压。
它们是Linux系统上比较新的压缩和解压缩工具,
通常bzip2对归档文件的压缩比要优于gzip工具。
比较新的Linux版本才支持bzip2和bunzip2命令。