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