稀疏檔案變成了普通檔案

2021-08-30 14:24:06 字數 670 閱讀 4379

原本有乙個 30g 的稀疏檔案 file.img,實際占用 3.5g 的空間。但壓縮成 file.img.tar.gz 後再解壓出來,發現實際占用了 30g 空間,稀疏檔案不稀疏了。為什麼呢?原來是因為在壓縮時沒有加上 -s 引數。此引數的作用是指明被壓縮檔案是乙個稀疏檔案,如果沒有這個引數,程式會填充稀疏檔案,導致變成了乙個普通檔案。

因此,以後在壓縮稀疏檔案時需要加上 -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

稀疏檔案Sparse File

引入稀疏檔案 sparse file 的目的是有效的利用檔案系統空間 磁碟空間 當檔案沒有實際資料時,首先將元資料 metadata 代表了空blocks 寫入磁碟,而不是用空資料 0 填充磁碟。而當寫入資料的時候,整個block被占用。讀取稀疏檔案時,檔案系統透明地將metadata轉化為實際的空...

稀疏檔案 20210209

看維基百科的介紹吧 wikipedia sparse file 使用find var log type f printf s t p n 判斷檔案是否為稀疏檔案。或者使用stat c b b s file 命令。最左邊一列 s 顯示的值是 block size st blocks st size 在...

linux 稀疏檔案相關

1.用dd建立乙個檔案 dd if dev zero of mnt test bs 4096 count 1 oflag direct 2.用stat 檢視檔案的詳細資訊 size表示的是檔案的邏輯大小,這裡是4k。blocks表示的物理檔案的大小 blocks 512 8 512 4096,也就是...