原本有乙個 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,也就是...