我正在清理 Windows PC 上的一些磁盘空间,这时我注意到这个旧文件夹,这是我以前在这台 PC 也运行 Linux 时拥有的。我尝试通过 Windows 删除该文件夹,但里面的一些文件的文件名中有一个冒号,这似乎会干扰 Windows。我尝试通过 Windows 上的 ubuntu 子系统删除文件,但也没有用。以下是我尝试的方法。
$ sudo ls
man3 <-- this is the dir to delete
$ rmdir man3
rmdir: failed to remove 'man3': Directory not empty
$ sudo rm -r man3
rm: cannot remove 'man3/Locale::gettext.3pm.gz': No such file or directory
rm: cannot remove 'man3/Text::CharWidth.3pm.gz': No such file or directory
rm: cannot remove 'man3/Text::Iconv.3pm.gz': No such file or directory
rm: cannot remove 'man3/Text::WrapI18N.3pm.gz': No such file or directory
这是我不太明白发生了什么的地方。我使用递归删除,但它以某种方式检测到要删除的文件,然后找不到它?
无论如何,我进入了目录并且这就是我尝试过的。
/man3$ ls -li
ls: cannot access 'Locale::gettext.3pm.gz': No such file or directory
ls: cannot access 'Text::CharWidth.3pm.gz': No such file or directory
ls: cannot access 'Text::Iconv.3pm.gz': No such file or directory
ls: cannot access 'Text::WrapI18N.3pm.gz': No such file or directory
total 0
? -????????? ? ? ? ? ? Locale::gettext.3pm.gz
? -????????? ? ? ? ? ? Text::CharWidth.3pm.gz
? -????????? ? ? ? ? ? Text::Iconv.3pm.gz
? -????????? ? ? ? ? ? Text::WrapI18N.3pm.gz
有人知道如何处理这些文件吗?我猜是某种损坏了,但我找不到办法直接删除它们。我也尝试过触摸一些发生这种情况的文件。
/man3$ touch Locale\:\:gettext.3pm.gz
/man3$ ls -li
ls: cannot access 'Text::CharWidth.3pm.gz': No such file or directory
ls: cannot access 'Text::Iconv.3pm.gz': No such file or directory
ls: cannot access 'Text::WrapI18N.3pm.gz': No such file or directory
total 0
28428972647776675 -rwxrwxrwx 1 serry serry 0 Apr 11 15:35 Locale::gettext.3pm.gz
28428972647776675 -rwxrwxrwx 1 serry serry 0 Apr 11 15:35 Locale::gettext.3pm.gz
? -????????? ? ? ? ? ? Text::CharWidth.3pm.gz
? -????????? ? ? ? ? ? Text::Iconv.3pm.gz
? -????????? ? ? ? ? ? Text::WrapI18N.3pm.gz
答案1
直接启动光盘或存储卡上的 Linux 来删除文件。
Linux 能够在文件名中使用 Windows 认为无效的字符。WSL 无法访问这些文件,因为 Windows 仍在用于访问文件系统。