稀疏文件变成了普通文件
程序员文章站
2022-03-04 20:41:10
...
原本有一个 30G 的稀疏文件 file.img,实际占用 3.5G 的空间。但压缩成 file.img.tar.gz 后再解压出来,发现实际占用了 30G 空间,稀疏文件不稀疏了。为什么呢?原来是因为在压缩时没有加上 -S 参数。此参数的作用是指明被压缩文件是一个稀疏文件,如果没有这个参数,程序会填充稀疏文件,导致变成了一个普通文件。
因此,以后在压缩稀疏文件时需要加上 -S 参数:
这样再解压就仍是一个稀疏文件:
如果现在已经变成普通文件,则可以通过 cp 命令来进行转换:
因此,以后在压缩稀疏文件时需要加上 -S 参数:
# tar zcSf file.img.tar.gz file.img
这样再解压就仍是一个稀疏文件:
# tar zvxf file.img.tar.gz
# du file.img -h
3.5G file.img
如果现在已经变成普通文件,则可以通过 cp 命令来进行转换:
# du file.img -h
30G file.img
# cp --sparse=always file.img file.img.sparse
# du file.img.sparse -h
3.5G file.img.sparse