Chinaunix首页 | 论坛 | 博客
  • 博客访问: 755014
  • 博文数量: 130
  • 博客积分: 2951
  • 博客等级: 少校
  • 技术积分: 1875
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-04 18:32
文章分类

全部博文(130)

文章存档

2013年(1)

2012年(129)

分类: 服务器与存储

2012-07-27 14:45:09

转自http://chentingjia.iteye.com/blog/643089

原本有一个 30G 的稀疏文件 file.img,实际占用 3.5G 的空间。但压缩成 file.img.tar.gz 后再解压出来,发现实际占用了 30G 空间,稀疏文件不稀疏了。为什么呢?原来是因为在压缩时没有加上 -S 参数。此参数的作用是指明被压缩文件是一个稀疏文件,如果没有这个参数,程序会填充稀疏文件,导致变成了一个普通文件。

因此,以后在压缩稀疏文件时需要加上 -S 参数:
Bash代码  
  1. # tar zcSf file.img.tar.gz file.img  

这样再解压就仍是一个稀疏文件:
Bash代码  
  1. # tar zvxf file.img.tar.gz  
  2. # du file.img -h  
  3. 3.5G  file.img  

如果现在已经变成普通文件,则可以通过 cp 命令来进行转换:
Bash代码  
  1. # du file.img -h  
  2. 30G  file.img  
  3. # cp --sparse=always file.img file.img.sparse  
  4. # du file.img.sparse -h  
  5. 3.5G  file.img.sparse  


阅读(3892) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~