【Linux压缩】利用Linux压缩技术来打包文件或备份

国庆节马上就要过去了,然而笔者的作业还没完成(太真实了)。现在的代码提交都要进行打包(降低带宽占用+减少接收方磁盘使用率),于是我寻思着能否利用Linux下的工具进行打包,遂有此文。

 

一. Linux系统中常见的压缩命令

命令优点缺点
gzip

压缩时间短;

压缩文件也能用WinRAR和7Zip解压

压缩效率最低
bzip2一种比较中庸的选择名字太难记了
xz压缩能力最强压缩时间太长了

(虽然书上是这么说的,但是有时我用time测试出来的时间bzip2比gzip做的又快又好

这些命令的参数都差不多,常用的有这三个:

  1. -c :将压缩过程中产生的数据输出到屏幕上。
  2. -d :解压缩的参数(也就是说,上述三个命令不仅能压缩文件,还能解压文件)
  3. -v :可以输出压缩比信息

使用的方法:

command filename

注意:

  1. 默认状态下生成的压缩文件的名称格式是filename.gz/bz2/xz。
  2. 压缩以后,源文件就不复存在了

 

二. Linux下打包命令

一中介绍的三个命令有着非常致命的缺陷——就是文件只能一个一个压缩。然而我们常用的Windows下的压缩软件都是能把文件夹直接打包压缩的,所以有没有一个命令能把Linux下的文件直接打包好呢?当然有,那就是我们的tar命令。

tar命令的作用是将多个文件合并为一个文件。而且原来的文件不会消失名字也要重新取(这点和之前三个压缩命令很不一样)

tar的命令行参数很多,最重要的无非就那几个:

命令行参数作用
-c/-t/-x选择模式:压缩/查询/解压
-z/-j/-J对应压缩命令(见上)
-C/-p/-P等稍微有一点技巧性的命令行参数(见下)

好,下面来介绍一下所谓有技巧性的命令行参数,这里以具体的情景展开:

  1. 是否覆盖原来的文件(-P):你要知道我们tar命令是不会让原来的文件消失的。如果带着根目录打包,最后解压出来的也是绝对路径,这样就会把原来的文件给覆盖掉-P参数,是通过把/去掉,使绝对路径变成相对路径,从而不会影响到原来的文件。
  2. 我想把解压后的文件放到另外一个目录(-C):刚刚提到我们解压出来的是相对路径。那么如果不指定解压目录的话,就放在原来的文件夹中了,-C参数,就是指定解压的目录。
  3. 我想保留原来文件的权限(-p):很多对文件的操作(比如cp)都会在无意之中改变文件的权限,指定-p参数,就不需要担心这种事情了。
  4. 仅解压单一文件:找到单你想解压的文件名,放在该命令的末尾即可。
  5. 不打包目录下的某些文件:--exclude=FILE
  6. 仅备份比某个时刻还要新的文件:tar里面没整这个,这是find的命令行参数:--newer(mtime和ctime),--newer-mtime(仅mtime)——(现在你知道mtime的重要了吧

总结一下,一般而言,最简单使用tar命令,只需要记住以下三个即可:

  1. tar -jcv -f filename filename.tar.bz2——压缩
  2. tar -jtv -f filename.tar.bz2——查询
  3. tar -jxv -f filename.tar.bz2——解压

(P.S. 这里有一个小小的技巧:在Linux下,命令行参数的顺序没什么关系,甚至可以写在一起,除非是像以上这种后面还可以接参数的情况,这时候我们可以把该参数单独提出来,防止弄错

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值