FAT32 形式の USB スティックで許可されていない Windows® 文字はどのように扱われますか?

FAT32 形式の USB スティックで許可されていない Windows® 文字はどのように扱われますか?

?私は Mac を持っていないので、ファイル名のや のようなものについてはわかりません:

私は特にDOS/Windows®のパス区切り文字に興味があります。Linux\では、fat32ファイル名内で使用できる有効な文字であることを知っています。(Windows® はボリュームが壊れていると警告します).
osxでも同じですか?それとも実行すると親ディレクトリにmkdir ..\\dirent作成されますか?dirent(hfs での動作はすでにわかっているので、fat32 の場合も同様です) ?

もちろん、ボリュームが Finder 経由でマウントされている場合の話です。
答えによっては、一般的なソース コード管理ソフトウェアに脆弱性が存在することが確認されるかもしれません...

答え1

これは興味深い質問です。私は、オペレーティング システム「OS X El Capitan」を搭載した MacBook で自分で調べなければなりませんでした。ファインダー/ファインダーを使用するアプリケーション (テキスト エディターなど) とコマンド ラインで許可されていない文字を区別する必要があります。

まず、バックスラッシュ「\」は、ファインダーでもコマンド ラインでも通常の文字と同じです。したがって、A\B のようなファイルまたはディレクトリを作成できます。疑問符についても同様です。

コロン「:」に関しては、話は複雑になります。コマンド ラインで A:B という名前のファイルを作成すると、コマンド ラインでは適切に作成されて表示されますが、Finder では A/B として表示されます。また、Finder で C:D のようにコロンを含むファイルを作成しようとすると、「C:D という名前は使用できません。文字数を減らすか、句読点のない名前を使用してください。」というエラーが表示されます。

ドット「.」で始まるファイルやディレクトリの作成は、コマンドラインで問題なく実行できます。ただし、これらの種類のファイルやディレクトリは隠しファイルや隠しディレクトリとして使用されるので、Finder で作成することはできません。代わりに、「ドット「.」で始まる名前は使用できません。これらの名前はシステム用に予約されています。別の名前を選択してください。」というエラー ウィンドウが表示されます。コマンドを実行すると、

mkdir ..\\dirent

コマンドラインで、次の名前の隠しディレクトリを作成します。

..\\dirent 

dirent現在のディレクトリ内にあるため、親ディレクトリで呼び出されるディレクトリではありません。

ちなみに、私はこれを fat32 形式の USB スティックでテストしましたが、NTFS 形式の外付けハード ドライブや HFS+ 形式の内蔵 SSD ドライブを使用した場合でも、動作は同じです。

これらのファイルとディレクトリ(MacBook から USB スティックに書き込んだもの)をすべて Windows エクスプローラー(Windows 10 を使用)で見ると、バックスラッシュ、コロン、疑問符が MacBook とは異なって表示され、それぞれ同じ特殊文字で表示されますが、キーボードでは作成できず、適切にコピーして貼り付けることもできません。このウィンドウに貼り付けると、「」が作成されますが、これは Windows エクスプローラーに表示される文字とは似ていません。Windows エクスプローラーではドット「.」に似ていますが、このドットは通常のドットより少し上、つまり中央に縦に配置されています。

少しでもお役に立てれば幸いです。

関連情報