保护系统的数据安全是计算机系统管理的重中之重,解决方法就是通过实时备份系统文件,来保护数据,也就是常说的数据容灾备份。在这篇文章中,我们将会描述几个常用来管理文件集合的命令程序,即文件压缩程序和归档程序,从而掌握在 linux 系统中如何归档和备份数据。
压缩文件
• gzip – 压缩或者展开文件
• bzip2 – 块排序文件压缩器
数据压缩的原理就是一个删除冗余数据的处理过程。压缩算法或任务主要分为两大类,即无损压缩和有损压缩。无损压缩的目标是在实现压缩的基础上,保留原始文件的所有数据。而有损压缩呢,在执行压缩操作的过程中会删除一些数据,从而实现更大的压缩目标。 有损压缩的 实例 有JPEG (图 像)文件和 MP3 (音频)文件。我们 主要描述 完全无损压缩, 原因是 计算机中的 大多数数据是不能允许丢失任何数据的。
Gzip 命令
gzip 命令支持 压缩一个或 着 多个文件。当执行gzip 命令时, 那么 原始文件的压缩版会替代 原始文件。相对应的 gunzip 命令将 压缩文件复原为没有被压缩的版本。
实例如下:
[ centos @ linuxprobe ~]$ ls -l /etc > test.txt
[centos@linuxprobe ~]$ ls -l foo.*
-rw-r--r-- 1 centos centos 15738 2008-10-14 07:15 test.txt
[centos@linuxprobe ~]$ gzip test.txt
[centos@linuxprobe ~]$ ls -l foo.*
-rw-r--r-- 1 centos centos 3230 2008-10-14 07:15 test.txt.gz
[centos@linuxprobe ~]$ gunzip test.txt.gz
[centos@linuxprobe ~]$ ls -l foo.*
-rw-r--r-- 1 centos centos 15738 2008-10-14 07:15 test.txt
首先,我们创建了一个名为 test.txt 的文本文件 。其次,我们运行 gzip 命令, 将 原始文件替换为一个叫做test.txt.gz 的压缩文件。在 foo.* 文件列表中, 查看得出 原始文件已被压缩文件替代, 大小 约 为 原始文 件的五分之一,权限和时间戳相同。
最后,我们运行 gunzip 程序来解压缩文件。随后, 压缩文件解压缩后得到的文件,其大小、权限和时间戳都无变化,实现了无损压缩。
bzip2 命令
与gzip 命令 相似, 区别是 使用不同的压缩算法,舍 弃了压缩速度,从而实现更高的压缩级别; 由bzip2 压缩的文件,用扩展名 .bz2 来表示 。在大多数情况下,它的工作模式及方式等同于 gzip 命令 。
bunzip2 和 bzcat 命令用来 解压缩文件。
bzip2 命令 也带有bzip2recover 程序,其会试图恢复受损的 .bz2 文件。
实例如下:
[centos@linuxprobe ~]$ ls -l /etc > test.txt
[centos@linuxprobe ~]$ ls -l test.txt
-rw-r--r-- 1 centos centos 15738 2008-10-17 13:51 test.txt
[centos@linuxprobe ~]$ bzip2 test.txt
[centos@linuxprobe ~]$ ls -l test.txt.bz2
-rw-r--r-- 1 centos centos 2792 2008-10-17 13:51 test.txt.bz2
[centos@linuxprobe ~]$ bunzip2 test.txt.bz2
归档文件
• tar – 打包 文件 工具
• zip – 打包和压缩文件
与文件压缩相互结合的文件管理任务是归档。归档就是收集多个文件,并将它们捆绑成一个大文件的过程。归档经常作为系统备份的组成部分来使用。当将一些旧的数据从一个系统迁移到某种类型的长期存储设备中时,也会用到归档程序。
tar
tar 命令可以说是 用来归档文件的经典工具。 其文件的扩展名为 .tar 或者 .tgz ,它们各自 所表达的含义是 “普通”的 tar 包和被 gzip 程序压缩过的 tar 包。一个 tar 包可以由一组独立的文件,一 个或者多个目录,或者两者混合体组成。
命令语法如下:
tar mode[options] pathname...
mode 是指以下操作模式 之一:
模式说明
c 为文件和/或目录列表创建归档文件。
x 抽取归档文件。
r 追加具体的路径到归档文件的末尾。
t 列出归档文件的内容。
[centos@linuxprobe ~]$ tar xf ../ txt .tar
[centos@linuxprobe ~]$ ls
txt
通过查看 /foo/playground 目录中的内容,这个归档文件已被 创建 , 同时也创建了一个原始文件副本。
注意:从归档文件中抽取的文件和目录的所有权由执行此复原操作的用户所拥有,不属于原始所有者。
zip
zip 命令 既是 一个 压缩工具, 同时 也是一个打包工具。在Linux 中 gzip 是主要的压缩 命令 程序, 而 uzip 是主要的解压缩命令程序。
zip/unzip 命令程序 可以完成 一些大家平常的一些 基本操作 , 它们两个都有许多选项 参数 , 从而 增加了 运用灵活性。 zip 和 unzip 命令的说明手册 也 都相当不错,并且 包含了许多实例。值得注意的是,这些程序的主要用途是为了和 Windows 系统交换文件,而不是在 Linux 系统中执行压缩和打包操作, tar 和 gzip 程序在 Linux 系统中更 常用 。
在这里讨论的所有命令的手册文档都讲解的清清楚楚明明白白,且附上有用的实例。我们需要熟练掌握它们。在编写这篇文章过程中我还参考了 《 Linux 就该这么学》 这本书,内容很贴近实践,很有理论指导实践价值的一本书籍。