Linux 上的空檔案有多少資料?

Linux 上的空檔案有多少資料?

我想計算或估計 linux 上的 1000 個空資料夾或 1000 個空檔案可以佔用多少磁碟空間。你能估計一下這需要多少磁碟空間嗎?

答案1

每個資料夾一開始就會佔用 1 個區塊,加上 Linux 內目錄條目中包含的任何資料。區塊大小因檔案系統而異。要檢查您的區塊大小,您可以運行塊開發命令。

根據 GNU 文檔,目錄條目包含以下內容:

char d_name[] 這是以 null 結尾的檔名元件。這是所有 POSIX 系統中唯一可以信賴的欄位。

ino_t d_fileno 這是檔案序號。為了相容於 BSD,您也可以將此成員稱為 d_ino。在 GNU/Linux 和 GNU/Hurd 系統以及大多數 POSIX 系統上,對於大多數檔案來說,這與 stat 將為檔案傳回的 st_ino 成員相同。請參閱文件屬性。

unsigned char d_namlen 這是檔案名稱的長度,不包括終止空字元。它的型別是 unsigned char,因為它是適當大小的整數型別。該成員是 BSD 擴充。如果該成員可用,則定義符號 _DIRENT_HAVE_D_NAMLEN。

unsigned char d_type 這是檔案的類型,可能未知。為其值定義了以下常數:

DT_UNKNOWN 類型未知。只有某些檔案系統完全支援返回檔案類型,其他檔案系統可能始終傳回此值。

DT_REG 常規文件。

DT_DIR 目錄。

DT_FIFO 命名管道,或 FIFO。請參閱 FIFO 特殊文件。

DT_SOCK 本地域套接字。

DT_CHR 字元設備。

DT_BLK 塊設備。

DT_LNK 符號連結。

總共 3 個字串。它們的大小會根據名稱的長度而改變。

此外,還需要考慮權限代碼,這將是另一個位元組左右。

新增區塊大小(通常預設值為 4 KB)並求出總數。

如果我們制定一個 SWAG,所有資料總計為 5KB,那麼整個資料消耗的總空間約為 5000KB。

我在 RHEL 伺服器上嘗試了此操作,空資料夾使磁碟利用率增加了 4 KB。 這表示資料夾保留的空間,直接源自於檔案系統中使用的區塊大小。由於我使用 4kb 區塊,因此檔案系統保留了 4kb。

在您自己的伺服器上測試:

從命令提示字元運行: df -hk

請注意“可用”列下的數值。

mkdir“無論如何”

再次運行 df -hk 並記下差異。

相關內容