linux 稀疏文件(Sparse File)

Linux文件空洞與稀疏文件
在UNIX文件操作中,文件位移量可以大於文件的當前長度,在這種情況下,對該文件的下一次寫將延長該文件,並在文件中構成一個空洞。位於文件中但沒有寫過的字節都被設爲0。
如果offset 比文件的當前長度更大,下一個寫操作就會把文件“撐大(extend)” 在文件裏創造“空洞(hole)”。沒有被實際寫入文件的所有字節由重複的0 表示。空洞是否佔用硬盤空間是由文件系統(file system)決定的。

稀疏文件(Sparse File)
稀疏文件與其他普通文件基本相同,區別在於文件中的部分數據是全0,且這部分數據不佔用磁盤空間。
下面是稀疏文件的創建與查看
[root@localhost ~]# dd if=/dev/zero of=sparse-file bs=1 count=1 seek=1024k
[root@localhost ~]# ls -l sparse-file
-rw-r–r– 1 root root 1048577 Oct 15 17:50 sparse-file
[root@localhost ~]# du -sh sparse-file
8.0K sparse-file
[root@localhost ~]# cat anaconda-ks.cfg >> sparse-file
[root@localhost ~]# du -sh sparse-file
12Ksparse-file
[root@localhost ~]# du -sh anaconda-ks.cfg
12Kanaconda-ks.cfg
[root@localhost ~]#
文件系統存儲稀疏文件時,inode索引節點中,只給出實際佔用磁盤空間的block號,數據全0,且不佔用磁盤空間的文件block並沒有物理磁盤block號。

linux稀疏文件Inode數據塊存儲:
文件空洞部分不佔用磁盤空間
文件所佔用的磁盤空間仍然是連續的

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