1 打包(归档)和压缩的概念
归档
,也称为打包
,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。通常,归档总是会和系统(数据)备份联系在一起。
压缩
是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。比如说,在压缩文件中,有不止一处出现了 “C语言中文网”,那么,在压缩文件时,这个词就会用一个代码表示并写入词典文件,这样就可以实现缩小文件体积的目的。
对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩
和无损压缩
。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式 mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。
采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩
。
2 Linux tar命令
2.1 tar命令的打包操作
当 tar 命令用于打包操作时,该命令的基本格式为:
[root@localhost ~]#tar [选项] 源文件或目录
tar 打包命令常用选项及含义
选项 | 含义 |
---|---|
-c | 将多个文件或目录进行打包。 |
-A | 追加 tar 文件到归档文件。 |
-f 包名 | 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名; |
-v | 显示打包文件过程; |
需要注意的是,在使用 tar 命令指定选项时可以不在选项前面输入“-”。例如,使用“cvf”选项和 “-cvf”起到的作用一样。
2.2 tar命令的解打包操作
当 tar 命令用于对 tar 包做解打包操作时,该命令的基本格式如下:
[root@localhost ~]#tar [选项] 压缩包
tar 解打包常用选项及含义
选项 | 含义 |
---|---|
-x | 对 tar 包做解打包操作。 |
-f | 指定要解压的 tar 包的包名。 |
-t | 只查看 tar 包中有哪些文件或目录,不对 tar 包做解打包操作。 |
-C 目录 | 指定解打包位置。 |
-v | 显示解打包的具体过程。 |
其实解打包和打包相比,只是把打包选项 "-cvf" 更换为 "-xvf"。
2.3 tar命令的打包压缩操作
当 tar 命令同时做打包压缩的操作时,其基本格式如下:
[root@localhost ~]#tar [选项] 压缩包 源文件或目录
此处常用的选项有以下 2 个,分别是:
-z:压缩和解压缩 “.tar.gz” 格式;
-j:压缩和解压缩 ".tar.bz2"格式。
常用 “zcvf” 压缩,“zxvf” 解压缩。