linux下压缩并分割稀疏文件

稀疏文件是指一个文件中大部分内容都是空字符的文件。

如虚拟机创建的100G的磁盘文件是,但系统不会马上分割出100G的空间,而是仅标识出虚拟硬盘文件是稀疏文件,待到数据存储时,再分配空间,这样可以大大的节约磁盘利用率。


稀疏文件在进行cp/scp/split/cat时,会由标识的稀疏文件变为非稀疏文件文件,而导致占用大量的空间。

这不是我们要的结果,可以用下面的方式来复制/移动/分割稀疏文件。


创建测试用稀疏文件,大小1G:

dd if=/dev/zero of=test_sparse.log bs=1 count=1 seek=1024M


查看文件:

ls -alsh test_sparse.log 

4.0K -rw-rw-r-- 1 lidq lidq 1.1G Jun  8 15:10 test_sparse.log


du -sh test_sparse.log 

4.0K test_sparse.log


可以看到两者的文件大小是不一样的。


用 tar 压缩稀疏文件:

tar -zcSvf  test_sparse.log.tar.gz test_sparse.log


分割压缩文件:

split -b 1M -d -a 4 test_sparse.log.tar.gz test_sparse.log.tar.gz-


合并分割文件:

cat test_sparse.log.tar.gz-* > test_sparse.log.tar.gz


稀疏文件(百度百科):http://baike.baidu.com/item/%E7%A8%80%E7%96%8F%E6%96%87%E4%BB%B6


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章