linux 压缩和打包

压缩技术一般分为两种:有损压缩和无损压缩。在linux中一般不允许有数据丢死,所以都是无损压缩。

linux中压缩技术一般可以分为两种:

  • gzip
  • bzip2

gzip

gzip是先于bzip2出现的压缩技术,一般的使用方法如下:

gzip  file 

file是需要压缩的文件,生成的压缩文件一般会替换原始的文件,压缩文件和原始的文件具有相同的时间属性和权限。

如果想要保留原始的文件,那么可以使用c选项和重定向实现。

gzip -cv  file  > file.gz   

c是将输出定位到标准输出,v是显示压缩过程中的详细信息。


gzip对应的解压缩命令:(目前 gzip 可以解开 compress, zip 与 gzip 等软件所压缩的文件

gzip -d file.gz  (或者使用gunzip命令)


可以使用zcat(参考cat)来直接查看纯文本压缩文件的内容。


bzip2 

bzip2是对gzip技术的一种改进,一般具有较好的压缩比,但是速度比较慢。bzip2的使用方式和gzip类似。

不同点:

bunzip2对应的解压缩命令是bunzip2(一般使用bzip2 -d来进行解压缩)
使用bzcat可以查看.bz2文件的内容。



缺点:这些压缩命令通常仅能针对一个文件来压缩与解压缩,虽然 gzip 与 bzip2 也能够针对目录来进行压缩,不过,这两个命令对目录的压缩指的是将目录内的所有文件 "分别" 进行压缩!因此,打包文件显得很有必要。

tar
打包就是把许多文件捆绑成一个大文件的过程,打包文件使用tar命令。tar命令的一般使用方法如下:

打包文件:tar -cv  -f  filename.tar  filename1  filename2  (c选项表示创建打包文件,f指定打包之后生成的文件名,v显示打包的文件信息)

解包文件:tar -xv -f filename.tar (x表示解包打包的文件,f指定打包文件名)

查看打包文件包含的文件 :tar  -t  -f  filename.tar  (-t显示打包文件中的文件名)


tar具有以下两个特点:

  1. 从打包文件恢复的文件的权限是执行恢复操作的用户的权限,除非你是root用户,此时权限是原始用户的权限。
  2. tar 命令特点是它处理归档文件路径名的方式。默认情况下,路径名是相对的,而不是绝对路径。当创建归档文件的时候,tar 命令会简单地删除路径名开头的斜杠。

从上图中可以看出,在打包文件的时候使用绝对路径时,~/playground会被展开为/home/peter/playground,所以最后会将home目录下的文件打包,并且会删除home路径前面的跟路径(看图中的第二行)。而且在解包的时候会以当前路径为父路径解包。


tar命令不仅具有打包功能,现在还能结合压缩技术一起使用,选项-j使用gzip压缩,-z使用bzip2压缩。 tar 命令经常结合 find 命令一起来制作备份文件。 通过 find 命令匹配指定的文件名或者新于某个时间戳的文件,我们就能够创建一个归档文件,例如:

find playground -name 'file-A' -exec tar rf playground.tar '{}' '+'   //r是追加选项


linux中相关的文件名约定:

*.Z         compress 程序压缩的文件;
*.gz        gzip 程序压缩的文件;
*.bz2       bzip2 程序压缩的文件;
*.tar       tar 程序打包的数据,并没有压缩过;
*.tar.gz    tar 程序打包的文件,其中并且经过 gzip 的压缩
*.tar.bz2   tar 程序打包的文件,其中并且经过 bzip2 的压缩


另外,tar 打包出来的文件有没有进行压缩所得到文件称呼不同。

  • tarfile:打包文件 tar -cv -f file.tar 
  • tarball:打包并压缩文件 tar -jcv -f file.tar.bz2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值