笔者之前接触的归档和备份都是在windows下完成的,而在linux就可以通过简单的命令行来完成这项操作。顿时就便捷了许多。
首先是对文件进行压缩,通过gzip(可以用来压缩一个或多个文件)程序来实现。首先创建一个名为foo.txt的文本文件,其内容包含一个目录的列表清单,然后运行gzip命令,它会把原始文件替换为一个叫做foo.txt.gz的压缩文件,在foo.*文件列表中,可以看到原始文件被压缩文件所替代,大小大概是原始文件的十五分之一,压缩的文件与原始文件有着同样的权限和时间。接下来运行 gunzip(用来把压缩文件复原为没有被压缩的文件)程序来解压文件,下一步就是用-t和-v选项来测试了压缩文件的完整性。另外,bzip2程序使用了不同的压缩算法,舍弃了压缩速度,从而实现了更高的压缩级别,用扩展名.bz2来表示。
接着是归档文件,经典的工具是用tar程序,它是一款制作磁带备份的工具,它也同样适用于其它的存储设备。首先重新创建之前用过的操练场,下一步,创建整个操练场的tar包,需要注意的是,必须先指定模式,然后才是其它的选项,接着,抽取tar包playground到一个新位置,这就需要先创建一个foo的新目录,更改目录,并抽取tar包中的文件,此时检查目录中的内容,就会看到这个文件已经被成功的安装了,就是创建了一个精确的原始文件的副本。另外,tar命令处理归档文件路径名的方式也非常有趣,默认状况下,路径名是相对的,而不是绝对路径。
其次,zip程序既是压缩工具,也是一个打包工具,在windows中用户会比较熟悉,因为它读取和写入.zip文件,而在linux中gzip和bzip2是主要的压缩文件。在创建zip版本的文件包时,zip命令通常会显示一系列的信息,这些信息显示了添加到文件包中每个文件的状态。zip命令会使用2种存储方法之一,其中之一就是会store没有压缩的文件,还有一种就是会deflate文件,执行压缩操作,zip命令可以接受标准输入,二
而unzip程序却不接受标准输入。
最后,同步文件和目录也是很重要的一部分。对本地文件使用rsync命令,首先,清空foo目录,其中包括了-a选项(递归和保护文件属性)和-v选项(冗余输出),来在foo目录中制作一个playground目录的镜像,目录之间不存在差距,因此不需要复制任何数据,若修改了文件,rsync命令监测到修改,并且只是复制了更新的文件。