linux 稀疏檔案相關

2021-08-28 20:49:30 字數 674 閱讀 4213

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,也就是4k。

io block表示的是一次io的大小,這裡就是4k,如果不夠4k,也是按4k對齊。

如果dd乙個1k的檔案,會看到size是1024,但是block還是8,也就是檔案的邏輯大小是1k,但實際占用的大小是4k。

3. 用fallocate命令,把檔案變成稀疏檔案。

fallocate -p test0 -o 0 -l 4096

4. 在用stat檢視檔案

看到檔案的邏輯大小還是4k。

但是檔案的物理大小變成0。

如果fallocate檔案的大小不是4k的對齊,那blocks是不會變成0的。也就是變成稀疏檔案失敗。具體原因還沒有查到。

稀疏檔案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.access系統呼叫 access系統呼叫用於檢測所指定的檔案訪問許可權,原型如下 include int access const char pathname,int mode 示例如下 include include int main int argc,char argv 其中f ok用於測...