8.2.3 【Linux】xz, xzcat/xzmore/xzless/xzgrep

8.3 打包指令: tar

8.3.1 tar

其实最简单的使用 tar 就只要记忆下面的方式即可:

压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称

查 询:tar -jtv -f filename.tar.bz2

解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

另外,由于“ -f filename ”是紧接在一起的,过去很多文章常会写成“-jcvf filename”,这样是对的, 但由于选项的顺序理论上是可以变换的,所以很多读者会误认为“-jvfc filename”也可以,事实上这样会导致产生的文件名变成 c。

使用 tar 加入 -z, -j 或 -J 的参数备份 /etc/ 目录

速度快,花费时间少,但是压缩率糟糕,但是如果备份到数据容量大,还是要考虑时间成本的。

查阅 tar 文件的数据内容 (可察看文件名),与备份文件名有否根目录的意义

要察看由 tar 所创建的打包文件内部的文件名非常的简单!可以这样做:

如果加上 -v 这个选项时,详细的文件权限/属性都会被列出来!如果只是想要知道文件名而已, 那么就将 -v 拿掉即可。从上面的数据我们可以发现一件很有趣的事情,那就是每个文件名都没了根目录了。

那为什么要拿掉根目录呢?主要是为了安全!我们使用 tar 备份的数据可能会需要解压缩回来使用, 在 tar 所记录的文件名 (就是我们刚刚使用 tar -jtvf 所察看到的文件名) 那就是解压缩后的实际文件名。 如果拿掉了根目录,假设你将备份数据在 /tmp 解开,那么解压缩的文件名就会变成“/tmp/etc/xxx”。 但“如果没有拿掉根目录,解压缩后的文件名就会是绝对路径, 亦即解压缩后的数据一定会被放置到 /etc/xxx 去!”如此一来,你的原本的/etc/ 下面的数据, 就会被备份数据所覆盖过去了!

将备份的数据解压缩,并考虑特定目录的解压缩动作 (-C 选项的应用)

这样就能够将该文件在不同的目录解开。

仅解开单一文件的方法

打包某目录,但不含该目录下的某些文件之作法

假设我们想要打包 /etc/ /root 这几个重要的目录,但却不想要打包 /root/etc* 开头的文件,因为该文件都是刚刚我们才创建的备份文件。此时我们可以通过 --exclude 的帮忙! 那个 exclude 就是不包含的意思。可以这样做:

仅备份比某个时刻还要新的文件

基本名称: tarfile, tarball ?

如果仅是打包而已,就是“ tar -cv -f file.tar ”而已,这个文件我们称呼为 tarfile 。 如果还有进行压缩的支持,例如“ tar -jcv -f file.tar.bz2 ”时,我们就称呼为 tarball。

此外,tar 除了可以将数据打包成为文件之外,还能够将文件打包到某些特别的设备去,举例来说, 磁带机 (tape) 就是一个常见的例子。磁带机由于是一次性读取/写入的设备,因此我们不能够使用类似 cp 等指令来复制的。如果想要将 /home, /root, /etc 备份到磁带机(/dev/st0) 时,就可以使用:“tar -cv -f /dev/st0 /home /root /etc”。

特殊应用:利用管线命令与数据流

在 tar 的使用中,有一种方式最特殊,那就是通过标准输入输出的数据流重导向(standardinput/standard output), 以及管线命令 (pipe) 的方式,将待处理的文件一边打包一边解压缩到目标目录去。

在上面的例子中,我们想要“将 /etc 下面的数据直接 copy 到目前所在的路径,也就是 /tmp 下面”,但是又觉得使用 cp -r 有点麻烦,那么就直接以这个打包的方式来打包,其中,指令里面的 - 就是表示那个被打包的文件。

例题:系统备份范例

系统上有非常多的重要目录需要进行备份,而且其实我们也不建议你将备份数据放置到 /root目录下! 假设目前你已经知道重要的目录有下面这几个:

/etc/ (配置文件)

/home/ (使用者的主文件夹)

/var/spool/mail/ (系统中,所有帐号的邮件信箱)

/var/spool/cron/ (所有帐号的工作排成配置文件)

/root (系统管理员的主文件夹)

/home/loop* 不需要备份,而且 /root下面的压缩文件也不需要备份,另外假设你要将备份的数据放置到 /backups ,并且该目录仅有 root 有权限进入。此外,每次备份的文件名都希望不相同,例如使用:backup-system20150701.tar.bz2 之类的文件名来处理。

解压缩后的 SELinux 课题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯西极限存在准则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值