常见的压缩指令
Linux 上常见的压缩指令就是 gzip, bzip2 以及最新的 xz ,至于 compress 已经退流行了。
gzip, zcat/zmore/zless/zgrep
注意: 当你使用 gzip 进行压缩时,在预设的状态下原本的文件会被压缩成为 .gz 的档名,源文件就不再存在了。
使用- c
可以选择保留原文件, 注意有个>
bzip2, bzcat/bzmore/bzless/bzgrep
bzip2 连选项与参数都跟 gzip 一模一样!只是扩展名由 .gz 变成 .bz2 而已!其他的用法都大同小异。
xz, xzcat/xzmore/xzless/xzgrep
[dmtsai@study ~]$ xz [-dtlkc#] 檔名
[dmtsai@study ~]$ xcat 檔名.xz
选项与参数:
-d :就是解压缩啊!
-t :测试压缩文件的完整性,看有没有错误
-l :列出压缩文件的相关信息
-k :保留原本的文件不删除~
-c :同样的,就是将数据由屏幕上输出的意思!
-# :同样的,也有较佳的压缩比的意思!
打包指令: tar
压缩指令指令大多仅能针对单一文件来进行压缩,虽然 gzip, bzip2, xz 也能够针对目录来进行压缩,不过, 这两个指令对目录的压缩指的是『将目录内的所有文件 “分别” 进行压缩』的动作!而不像在 Windows 的系统,可以使用类似 WinRAR 这一类的压缩软件来将好多数据『包成一个文件』的样式。
其实最简单的使用 tar 就只要记忆底下的方式即可:
- 压 缩:
tar -jcv -f filename.tar.bz2
要被压缩的文件或目录名称 - 查 询:
tar -jtv -f filename.tar.bz2
- 解压缩:
tar -jxv -f filename.tar.bz2 -C
欲解压缩的目录
tar 并不会主动的产生建立的档名!需要自己定义!过去很多文章常会写成『-jcvf filename』,这样是对的,但由于选项的顺序理论上是可以变换的,所以很多读者会误认为『-jvfc filename』也可以~事实上这样会导致产生的档名变成 c ! 因为 -fc 嘛!所以啰,建议您在学习 tar 时,将『 -f filename 』与其他选项独立出来,会比较不容易发生问题。
使用 tar 加入 -z, -j 或 -J 的参数备份 /etc/ 目录
查阅 tar 文件的数据内容 (可察看檔名),与备份文件名有否根目录的意义
每个文件名都没了根目录了!拿掉根目录呢?主要是为了安全!我们使用 tar 备份的数据可能会需要解压缩回来使用,在 tar 所记录的文件名 (就是我们刚刚使用 tar -jtvf 所察看到的檔名) 那就是解压缩后的实际档名。如果拿掉了根目录,假设你将备份数据在 /tmp 解开,那么解压缩的档名就会变成『/tmp/etc/xxx』。但『如果没有拿掉根目录,解压缩后的档名就会是绝对路径, 亦即解压缩后的数据一定会被放置到 /etc/xxx 去!』如此一来,你的原本的 /etc/ 底下的数据, 就会被备份数据所覆盖过去了!
如果想保留根目录,需要使用- p
参数
一般不要加上 -P 这个选项来备份! 毕竟很多时候,我们备份是为了要未来追踪问题用的,倒不一定需要还原回原本的系统中!
全部解打包
部分解打包
其他待续
- 打包某目录,但不含该目录下的某些文件之作法
- 仅备份比某个时刻还要新的文件
- 基本名称: tarfile, tarball ?
- 特殊应用:利用管线命令与数据流