フォルダー内にまったく同じ名前のファイルを作成するにはどうすればよいでしょうか?

フォルダー内にまったく同じ名前のファイルを作成するにはどうすればよいでしょうか?

これは私がやろうとしていることではありません。すでに発生している問題を解決しようとしているのです。

現場の LIDAR システムの 1 つが、重複ファイルを含むデータ収集ドライブを返しました。ドライブ上のすべてのファイルに、名前、時間、日付、サイズがまったく同じ重複ファイルがありました。私の知る限り、これはあり得ないことです。

ファイルは Linux PC (CentOS 7) に書き込まれていますが、NTFS に保存されています。これは、Windows PC で処理されるためです。私たちはこのソフトウェアを実行し、何年も同じタイプのドライブを使用してきました。

これが起こる原因について考えてみましたが、何も思いつきませんでした。何らかの理由でストレージ ソフトウェアのインスタンスが 2 つ実行されていた場合、同じディレクトリに同一のファイルを書き込むのではなく、同じファイルをめぐって競合することになります。これはあり得ないことです。

そこで、Windows ファイル エクスプローラーがファイルを表示したときに偶然そうなったのではないかと考えました。ドライブを取り外して別の PC に挿入しても、やはり同じ結果が表示されました。次に、隠し文字があるのではないかと考えました。しかし、データをサーバーに転送すると、ファイル名が同一であると認識され、重複するファイルをスキップまたは上書きするように指示されました。

私はこれを偶然の出来事として片付けますが、顧客は原因を究明しようと固執しています。なぜこのようなことが起きたのか、誰か私に洞察や理論を教えてくれませんか?

答え1

次のような現象を見たことがあります。1 つのファイルには通常の「a」(ASCII 0x61) が含まれていましたが、もう 1 つのファイルには非常によく似た「キリル文字の小文字 a」(U+0430) が含まれていました。キリル文字には、ラテン文字とまったく同じように見える文字が多数あります (「e」と「o」は、よく使用される他の 2 つの文字です)(*)。

問題 (および悪者) を特定する 1 つの方法は、次のとおりです。dirまたは、ls出力をファイルして 16 進エディターで確認します (Linux では、より短い も使用できますls * | hd)。

私の記憶が正しければ、ファイル名に Unicode の「ZERO WIDTH SPACE (U+200B)」文字を使用することもできます。

(*) この回答の本文ではいくつか隠してあります...

関連情報