Linux学习笔记(五)打包压缩与解压缩

戏子无情 提交于 2020-12-18 10:46:13

Linux基础学习笔记精选专栏

本专栏由小雨ttt创建,致力于分享学习Linux基础知识的过程。本专栏不是机械地介绍Linux指令集,而是包含了作者亲自实践的操作过程,站在一个初学者的角度理解Linux基础知识。

目前本专栏包含的内容有:



一、 打包

我们的根目录下有一个xiaoyu文件夹,现在我们要将它打包成一个文件,我们可以使用命令:

tar cf /tmp/xiaoyu-backup.tar /root/xiaoyu


这里的意思是:将xiaoyu目录打包成xiaoyu-backup.tar文件放在/tmp目录下

1. 相关知识

tar cf 目标目录及文件名 要打包的目录

  • 参数c表示为打包

  • 参数x表示为解包的意思 

  • 参数f表示打包成文件的意思

  • tar打包命令参数可以不需要用-

2. 实际运行


实际在Linux下运行这个命令时,会报错:


因为在Linux系统下,使用tar命令对文件进行打包时,一般不建议使用绝对路径;

3. 解决办法

(1)相对路径解决法 
我们只需要将待打包的文件目录换成相对路径即可,如果我们当前已经在根用户目录下,可以使用

tar cf /tmp/xiaoyu-backup.tar ./xiaoyu

意思是将当前目录下的xiaoyu文件夹,打包成xiaoyu-backup.tar的包,放在/tmp目录下

(2)添加参数P 
或者我可以给tar命令添加一个参数P,就会按照原来的绝对路径打包

tar cPf /tmp/xiaoyu-backup.tar /root/xiaoyu

请谨慎使用这个参数,加这个参数,就会按原来的绝对路径解压,如果目标路径有相同文件,会覆盖原文件




二、打包压缩


1. 使用gzip进行压缩

我们希望能在打包的同时进行压缩,可以使用命令:

tar czf /tmp/xiaoyu-backup.tar.gz ./xiaoyu

参数z表示打包的同时进行gzip压缩,使用双扩展名表示:打包的同时也进行了压缩。

2. 使用bzip2进行压缩

如果使用bzip2进行压缩,则需要使用参数j

tar cjf /tmp/xiaoyu-backup.tar.bz2 ./xiaoyu

于此同时,打包压缩的文件后缀则改为bz2,它压缩比率高,速度相对于gzip慢。 
这里我们可以分别看一下它们的大小:


bz2文件比gz文件更小,说明bzip2的压缩率比gzip高;

三、 解包

解包需要将打包参数c换成解包参数x 
tar xf 指定目录下的文件 -C 要放放位置解包指定目录下的文件放在指定的目录

tar xf /tmp/xiaoyu-backup.tar -C /root

tmp录下的xiaoyu-backup.tar文件解包至/root目录下。

补充知识:我们经常会看到一些压缩扩展名tbz2tgz,其实它们是tar.bz2tar.gz的缩写。

接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:小雨编程。



本文分享自微信公众号 - 小雨编程(xiaoxiaoyu1926)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!