🔖

【WSL】「find: ‘.’: 入力/出力エラーです」の原因

2023/05/16に公開

結論

255 バイトを超えるファイル名になっていた。
つまり、Windowsでは読めるものの Linux(WSL)では読めない状態だった。

ChatGPT曰く

WSL(Windows Subsystem for Linux)は、Windows上でLinux環境を実行するための機能です。WSL(Ubuntu)のファイル名の最大長については、一般的なLinuxファイルシステムの制約に従います。

通常、Linuxのファイルシステムで使用されるファイル名の最大長は255バイトです。この最大長は、ファイル名自体とパス名の組み合わせに適用されます。
WindowsのファイルシステムであるNTFS(New Technology File System)におけるファイル名の最大長は、通常は260文字です。この制限は、ファイル名そのものとパス名(ディレクトリ名を含む)の合計文字数に適用されます。

ただし、Windows 10のバージョン 1607(Anniversary Update)以降では、一部のファイルパスの最大長を延ばすための改善が行われました。長いパスをサポートするための機能として、Win32 API関数である「\?\」プレフィックスを使用することができます。この場合、最大パス長は32,767文字に拡張されます。

実験

ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ.txt

というファイル名を作ってみたところ、
Windowsで読めて WSL では死んだ


補足

ハードウェア的に壊れる予兆の可能性もありますので、注意です。
SSD/HDDの寿命とか。

Discussion