归档
归档(archiving)就是将许多文件(或目录)打包成一个文件。
归档的目的就是方便备份、还原及文件的传输操作。
Linux 操作系统的标准归档命令是 tar
(来自 tape archive)。
tar
命令的功能是将多个文件(也可有目录)放在一起存放到一个磁带或磁盘归档文件中,并且将来可以根据需要只还原归档文件中的某些指定的文件。
tar
命令默认并不进行文件的压缩。
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
参数的 tar
命令:
$ tar cvf arch.tar dir2arch # File to be archived should be a RELATIVE path
dir2arch/
dir2arch/learning.txt
dir2arch/name.txt
...
查看归档文件内容
查看归档文件内容用带 t[v]f
参数的 tar
命令:
$ tar tf arch.tar
dir2arch/
dir2arch/learning.txt
dir2arch/name.txt
...
可以在 tar
命令中再加入 v
来显示文件更加详细的信息(类似于 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
参数的 tar
命令
⚠️ 解开前要将工作目录切换到打包时所在的目录,才能保证抽取的文件放回到原来的位置。
$ tar xvf arch.tar
dir2arch/
dir2arch/learning.txt
dir2arch/name.txt
dir2arch/flowers.JPG
dir2arch/dog.JPG
...
压缩
进行文件压缩的主要目的是缩小文件的大小。
- 一般对正文文件进行压缩之后,文件的大小可以被压缩大约75%。
- 但是二进制的文件,如图像文件通常不会被压缩多少。
下面介绍 Linux 系统中两组常用的压缩工具 gzip 和 bzip2。
gzip
gzip 和 gunzip 是 Linux 系统上标准的压缩和解压缩工具,gzip对正文文件的压缩比一般超过75%.
gzip \ gunzip <-> [*.gz]
注意:
- 用gzip不能压缩目录
- 用
gzip
来压缩文件,就必须使用gunzip
来解压缩。
gzip [选项] [压缩文件名…]
若不用-c则会压缩源文件(把原来多foo.txt变成一个foo.txt.gz)
-v:在屏幕上显示出文件的压缩比(v是verbose的第1个字母)。
-c:保留原来的文件,而新创建一个压缩文件(要重定向出来),其中压缩文件名以.gz结尾。
(gzip -vc bar.txt > foobar.gz)
解压缩时,输入 gunzip
空格后跟要解压缩的文件,如 gunzip arch.gz
。
bzip2
bzip2 & bunzip2 是Linux系统上比较新的压缩和解压缩工具,通常 bzip2 对归档文件的压缩比要优于gzip工具。
bzip2 \ bunzip2 <-> [*.bz2]
注意:
- 用 bzip2 压缩,必须用 bunzip2 解压。
- 比较新的 Linux 版本才自带 bzip2 和 bunzip2 命令。