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

我有一个卷上的文件,将需要在Mac,Linux和Windows机器之间复制。 我想确保没有惊喜:

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

我是否正确地认为在FAT32中合法的任何内容(在上面的列表中)在NTFS,EXT3和HFS +中都是合法的?

如果没有,有没有一个脚本/实用工具,我可以运行,没有真正的复制文件到所有这些types的卷,这将打印一个列表潜在的问题?

你是正确的 – 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. 虽然子目录的数量没有限制,但是您的path限制为260个字符。 (这是Windows 95/98的限制 – 在Linux上是4096)
  4. 像FAT32一样,对子目录没有限制,但是你有一个32767的path限制。
  5. EiB = exbibyte = 2 ^ 60字节。 1 exbibyte = 1024 PB。 1 petabyte = 1024 terabytes。
  6. NTFS具有与FAT 32不同的字符集( " * / : < > ? \\ | )”
  7. 最大限制取决于块大小。

欲了解更多信息,一个好的起点是维基百科的文件系统比较,但在一些细节上是相当模糊的。

我不知道任何这样的实用程序,但想到的是,您可以有一组虚拟机,您可以在其中使用脚本testing大部分这些文件系统。

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