檔案系統最多可以包含多少個檔案?

檔案系統最多可以包含多少個檔案?

給定 Ubuntu 上 ext4 檔案系統上目錄條目的目前結構,檔案系統可以包含的最大檔案數是多少?

計算檔案系統可以包含的最大檔案數的一般方法是什麼?

答案1

Ext4 的理論限制為 40 億個文件,該限制受到用於識別每個文件的 inode 編號大小的限制(ext4 使用 32 位元 inode 編號)。然而,正如 John 所說,ext4 靜態分配 inode 表,因此實際限制是在建立檔案系統時設定的。

df 指令顯示檔案系統上空閒 inode 的數量:

$ df -i

Filesystem        iused     ifree  %iused  Mounted on
/dev/disk0s3   55253386  66810480    45%   /
/dev/disk1s3   55258045  66805821    45%   /Volumes/Clone

Ext4 也支援每個目錄無限數量的子目錄,但預設限制為 64,000。這是可配置的——參見核心新手上的 ext4 文章

有關更多信息,請參閱新的 ext4 檔案系統:現狀與未來計劃來自 2007 年 Linux 研討會。

答案2

本身並沒有一個;這取決於。當您建立 ext4 檔案系統時,您可以決定檔案系統的大小索引節點表,它又控製檔案系統一次可以容納的目錄或檔案的總數。

答案3

不是 Ubuntu,而是 Redhat Linux 上的基本命令,例如 find 在針對包含 300 萬個檔案的目錄運行時會失敗,並出現「參數過多錯誤」。如果不包含任何參數,ls 會成功運行,但一旦新增過濾器參數,就會失敗並出現相同的錯誤。

假設此類基本命令的可靠性是強制性要求,我建議 300 萬個文件太多了。

相關內容