web-dev-qa-db-ja.com

Linux vfatドライバーが特定の文字を許可しないのはなぜですか?

Linux vfatドライバーは、vfatの長いファイル名の特定の文字を許可していないようです:?<>\:*|"。 Windowsがこれらの文字をサポートしていないことは理解していますが、 Wikipedia は、ファイルシステム自体がnull以外の16ビットUnicode文字をサポートしていることを示しているようです。その場合、Linuxドライバーが使用可能な文字を制限するのはなぜですか?それは単に互換性のためですか、それともウィキペディアのページに記載されていない技術的な制限が実際にありますか?前者の場合、この制限を無効にする方法はありますか?

NTFS-3gは、これらの文字のNTFSへの書き込みをサポートしています。これは、外付けハードドライブを使用してLinuxシステム間でファイルを移動する場合に非常に便利です。 VFATでも同じことができたらいいですね。

5
rkjnsn

私が間違っていなければ、Windowsでサポートされているファイルシステム(FAT/VFAT/FAT32/NTFS)は、有効なファイル名とディレクトリ名のいくつかの標準的な命名規則を満たす必要があります。上記の文字リストは予約文字であり、Unicode文字でも使用できません。

Linuxでのfat/vfatファイルシステムの実装は、この種の「Windows標準」に準拠しようとしていると言えます。おそらく、 この記事 それに関する詳細をもたらすことができます。

1
dsmsk80