Linux 文件夹大小限制

alo*_*aik 6 linux filesystems inode files

我们使用以下代码在 Linux 服务器中创建文件夹。

File dir = new File(filePath);
            if(!dir.isDirectory())
             dir.mkdirs();
Run Code Online (Sandbox Code Playgroud)

之后以编程方式在其中创建文件并写入其中。

但问题是在没有创建特定大小的新文件之后。(文件夹中甚至还有可用空间)。

是否有任何限制。文件或文件夹大小?请告诉我如何检查。

小智 14

可以在分区和目录中创建的文件数量有限制。

我从这里找到了以下信息。

FAT32

  • 最大文件数:268,173,300
  • 每个目录的最大文件数:2 16  - 1 (65,535)
  • 最大文件大小:2 GiB - 1 没有LFS,4 GiB - 1 有

文件系统

  • 最大文件数:2 32  - 1 (4,294,967,295)
  • 最大文件大小
    • 实现:2 44  - 2 6字节(16 TiB - 64 KiB)
    • 理论值:2 64  - 2 6字节(16 EiB - 64 KiB)
  • 最大卷大小
    • 实施:2 32  - 1 个集群(256 TiB - 64 KiB)
    • 理论值:2 64  - 1 个簇

分机2

  • 最大文件数:10 18
  • 每个目录的最大文件数:~1.3 × 10 20(性能问题超过 10,000)
  • 最大文件大小
    • 16 GiB(块大小为 1 KiB)
    • 256 GiB(块大小为 2 KiB)
    • 2 TiB(块大小为 4 KiB)
    • 2 TiB(块大小为 8 KiB)
  • 最大卷大小
    • 4 TiB(块大小为 1 KiB)
    • 8 TiB(块大小为 2 KiB)
    • 16 TiB(块大小为 4 KiB)
    • 32 TiB(块大小为 8 KiB)

分机3

  • 最大文件数:min(volumeSize / 2 13 , numberOfBlocks)
  • 最大文件大小:与 ext2 相同
  • 最大卷大小:与 ext2 相同

分机4

  • 最大文件数:2 32  - 1 (4,294,967,295)
  • 每个目录的最大文件数:无限制
  • 最大文件大小:2 44  - 1 字节(16 TiB - 1)
  • 最大卷大小:2 48  - 1 字节(256 TiB - 1)

  • “每个目录的最大文件数:~1.3 × 10^20”大于“最大文件数:10^18”,这是否正确? (2认同)
  • 这其实是不正确的!这些数字纯粹是理论值,但实际上,其他因素会阻止您在单个文件夹中保存数百万个文件(哈希冲突、inode 限制等)。我经历了惨痛的教训才明白这一点。顺便说一句,文件夹树限制为 64k。 (2认同)