我在 Linux 机器上有大量使用无效文件名的文件。我尝试使用“detox”实用程序,以及 convmv 和 recode,但它们一直因错误而失败
recode: fopen (Entw�rfe): Invalid argument
即使是简单的 ls -la 也会产生:
ls: cannot access 'Entw'$'\374''rfe': Invalid argument
-????????? ? ? ? ? ? 'Entw'$'\374''rfe'
字符应该是变音符号“ü”
ls报告错误。也许某些系统调用被无意义地调用(这可能解释了为什么 BSD 不会阻塞,不同的系统调用,不同的 ls 代码)。您可以尝试在 strace 下运行对 ls 的调用,看看会发生什么。
正如评论所述,这看起来像是严重的文件系统损坏。最好的办法是将分区(或任何后备存储)复制到某处,然后在其上运行诊断/文件系统调试/修复。也许在尝试通过使用备份软件或 tar 来恢复可以可靠读取的内容之后。