【发布时间】:2019-12-14 06:36:11
【问题描述】:
我在 WSL (g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0) 下使用 g++ 将基本 C++ 文件“simple.cpp”编译为可执行文件“simple”。创建此可执行文件后,我无法删除它。
我尝试使用rm -rf simple、sudo rm -rf simple 删除,通过 Windows 资源管理器(属性中缺少安全选项卡)和del simple 在提升的命令提示符中删除。有趣的是,sudo rm -rf simple 返回 0,表示成功,但ls -l 显示文件仍然存在,但不可读。即使是sudo ls -l,它也会显示以下内容:
ls: cannot access 'simple': No such file or directory
total 128
-????????? ? ? ? ? ? simple
-rwxrwxrwx 1 seb seb 28 Aug 6 17:25 simple.cpp
尝试 chmod 或 chown 文件也会失败,并显示 cannot access 'simple': No such file or directory。
simple.cpp 文件包含非常无害的内容:
int main() {
return 0;
}
我预计所描述的 4 种方法中的一种会删除该文件,但一切都失败了。
【问题讨论】:
-
rm -rf simple- 为什么使用r(表示递归)参数?这只对目录有意义,simple是一个文件,而不是一个目录。并不是说它真的很重要,只是为命令指定无意义的参数似乎很奇怪。 -
如果 Windows 应用程序打开了文件,它可能会阻止删除.. 只是猜测。
-
@JesperJuhl -r 是因为我使用的某些命令将文件报告为目录,所以我想我会通过使用 -r 删除它来删除它作为一个潜在问题,如果它实际上以某种方式变成了一个目录。
标签: c++ gcc windows-subsystem-for-linux