如何检查卷上的所有路径/文件是否符合 EXT3、FAT32 和 HFS+

如何检查卷上的所有路径/文件是否符合 EXT3、FAT32 和 HFS+

我有一个卷,里面有需要在 Mac、Linux 和 Windows 计算机之间复制的文件。我想确保不会出现以下意外情况:

  • 文件大小
  • 文件名长度
  • 文件名字符集
  • 嵌套目录的数量

我是否可以正确地假设(上面列表中的)在 FAT32 中合法的任何内容在 NTFS、EXT3 和 HFS+ 中也是合法的?

如果没有,是否有一个脚本/实用程序可以运行,而无需实际将文件复制到所有这些类型的卷,而是打印出潜在问题的列表?

答案1

您是对的 - FAT32 及其限制(与文件大小和字符限制有关)将是您最大的限制。

供参考(以便将所有信息集中在一处):

| TYPE  | FILE SIZE | FILENAME | CHARACTER SET  | DIRECTORY | VOLUME SIZE |
| FAT32 | ~4GB      | 11/255(2)|ASCII/Unicode(2)| No (3)    | 2TB (1)     |
| NTFS  | ~16 EiB(5)| 255      | Unicode(6)     | No (4)    | 16 EiB      |
| EXT3  | 16GB/2TB  | 255      | Unicode        | No        | 16GB/32TB(7)|
| HFS+  | ~8 EiB    | 255      | Unicode        | Unlimited | ~8 EiB      |
| ZFS   | 16 EiB    | 255      | Unicode        | Unlimited | 16 EiB      | 
  1. 64k 大小的集群最高可以达到 8TB。
  2. FAT32 本身支持使用 ASCII 的 11 个字符文件名 (8.3),如果支持长文件名,则最多可支持 255 个 UTF-16 字符。排除的 ASCII 字符包括:" * / : < > ? \\ |
  3. 虽然子目录的数量没有限制,但路径限制为 260 个字符。(这是 Windows 95/98 中的限制 - Linux 上为 4096)
  4. 与 FAT32 类似,子目录没有限制,但路径限制为 32767。
  5. EiB = 艾字节 = 2 ^ 60 字节。1 艾字节 = 1024 拍字节。1 拍字节 = 1024 太字节。
  6. NTFS 具有与 FAT 32 相同的一组不允许的字符(" * / : < > ? \\ |
  7. 最大限制取决于块大小。

欲了解更多信息,可以从维基百科开始文件系统比较但在一些细节上却相当模糊。

答案2

我不知道有任何这样的实用程序,但我想到的是,你可以拥有一组虚拟机,在其中你可以使用脚本测试大多数文件系统。

只需使用脚本将一组示例文件复制到每个分区,看看它是否会引发错误。

相关内容