《Linux Shell脚本攻略》学习笔记-第七章
7.1 简介
随着磁盘存储技术的发展,最简单地备份方法是添加新的磁盘设备或是使用云存储,而不再是依赖磁盘。
但是也需要压缩备份数据,降低存储空间需求以及传输时间。把数据存放在云端之前应该对其加密。数据在加密之前通常都要先进行归档和压缩。
7.2 使用tar归档
tar命令可以用于归档。tar可以将多个文件和文件夹打包为单个文件,同事还能保留所有的文件属性。由tar创建的文件通常称为tarball。
选项-c表示创建新的归档文件,选项-f表示归档文件名。
文件名应该紧跟在-f选项之后出现,而且-f应该是选项中的最后一个。
选项-r可以将新文件追加到已有的归档文件末尾
选项-x可以将归档文件中的内容提取到当前目录;通过选项-C来指定将文件提取到哪个目录;通过将文件名作为命令行参数来提取特定的文件
在归档时,我们可以将stdout指定为输出文件,这样另一个命令就可以通过管道来读取(作为stdin)并进行其他处理。
我们可以使用选项-A拼接多个tar文件
如果同名文件已经存在,那么归档文件中就会包含两个名字一样的文件。我们可以使用更新选项-u指明:只添加比归档文件中的同名文件更新的文件。
选项-d可以将归档文件中的文件与文件系统中的文件进行比较。
tar命令默认之归档文件,并不对其进行压缩。不过tar支持用于压缩的相关选项。压缩能够显著减少文件的体积。
归档文件通常被压缩成下列各式之一:gzip格式(-j)、bzip2格式(-z)、lzma格式(--lzma)。
不明确指定上面那些特定的选项也可以使用压缩功能。tar能够基于输出或者输入文件的扩展名来进行压缩。
选项--exclude可以将匹配通配符模式的文件排除在归档过程之外。
也可以将需要排除的文件列表放入文件中,同时配合选项-X
tar的选项--exclude-vcs可以在归档时排除版本控制相关的文件和目录。
7.3 使用cpio归档
7.4 使用gzip压缩文件
gzip和gunzip可以分别用于压缩和解压缩。
从stdin中读入文件并将压缩文件写出到stdout
后缀.gz表示的是经过gzip压缩过的tar归档文件,有两种方法可以创建此类文件。
方法一:
选项-z指明用gzip进行压缩,选项-a指明根据文件扩展名推断压缩格式
方法二:
zcat命令无需经过解压缩操作就可以将.gz文件中的内容输出到stdout。
我们可以指定压缩率,它共有9级,其中:1级的压缩率最低,但是压缩速度最快;9级的压缩率最高,但是压缩速度最慢。
gzip默认使用第6级,倾向于在牺牲一些压缩速度的情况下获得比较好的压缩率。
7.5 使用zip归档及压缩
在完成提取操作后,unzip不会删除file.zip,这与gunzip不同。
7.6 更快的归档工具pbzip2
pbzip命令采用了多线程,能够借助多核来降低压缩文件所需的时间。
选项-d可以进行解压缩
7.8 使用rsync备份系统快照
rsync可以在最小化数据传输量的同时,同步不同位置上的文件和目录。相较于cp命令,rsync的优势在于比较文件修改日期,仅复制新的文件。
另外,它还支持远程数据传输以及压缩和加密。
- 解压缩
- 压缩单个文件
- 选项-l可以列出压缩归档文件中的内容
- 选项-d可以从压缩归档文件中删除一个或者多个文件
- 选项-u可以更新压缩归档文件中的内容
- 解压缩文件
- 选项-r可以对目录进行递归式归档
- 创建zip格式的压缩归档文件
- 使用bzip2
- 压缩率
- zcat-直接读取gzip格式文件
- 压缩归档文件
- 补充内容
- gzip命令
- 打印总字节数
- 排除版本控制目录
- 在归档过程中排除部分文件
- 压缩tar归档文件
- 从归档中删除文件
- 比较归档文件与文件系统中的内容
- 通过检查时间戳来更新归档文件中的内容
- 拼接两个归档文件
- 在tar中使用stdin和stdout
- 从归档文件中提取文件或目录
- 向归档文件中追加文件
- tar命令的其他特性
- 选项-v或-vv参数可以在命令输出中加入更多的细节信息
- 列出归档文件中所包含的文件
- 使用tar创建归档文件