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

use*_*ame 3 filesystems ext3 ntfs fat32 hfs+

我有一个包含需要在 Mac、Linux 和 Windows 机器之间复制的文件的卷。我想确保没有意外:

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

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

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

Che*_*ion 5

你是对的 - 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      | 
Run Code Online (Sandbox Code Playgroud)
  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 = exbibyte = 2 ^ 60 字节。1 exbibyte = 1024 PB。1 PB = 1024 TB。
  6. NTFS 具有与 FAT 32 ( " * / : < > ? \\ |)不允许的相同字符集
  7. 最大限制取决于块大小。

有关更多信息,一个好的起点是维基百科的文件系统比较,但在某些细节上非常模糊。