rm -rf 留下了不可删除的目录;我怎样才能删除它?

rm -rf 留下了不可删除的目录;我怎样才能删除它?

我只是rm -rf做了一些垃圾(长话短说,不要使用 Unreal 和 Git,它会破坏东西)。现在我有一个 Bash 列表中的文件,ls -Al如下所示:

d????????? ? ?    ?    ?           ? old-folder-name

它的 inode 被列为?by ls -irm old-folder-name由于没有这样的文件或目录而失败,并ls打印该消息,尽管它并不能阻止它实际列出它。任何尝试mvcd类似的尝试也会因为这个原因而失败。

我目前使用 WSL,当通过管理员帐户上的文件资源管理器删除它时,我收到一个关于需要管理员权限的无意义错误。两者delrmdir失败了。显然,Windows 也无法解决这个问题。

我怎样才能删除该文件夹?

注意:重启后(即晚上关机,早上再打开)就没了。我仍然想知道为什么会发生这种事。

答案1

您要删除的“文件”不是文件,而是目录。
简单的命令rm不会删除它,您需要使用rmdir或更复杂的 rm 命令(例如您使用的 rm -rf )。另请注意,如果目录不为空,则 rmdir 不会删除该目录。

然而,由于 ls 正在打印?'s ,因此很可能在家长目录,该目录具有读取 (r) 但不具有执行 (x)(cd 进入)权限。
解决方案是让(父)目录具有x权限,如果你是所有者,则具有读写权限:

chmod 711 old-folder-name(parent)

然后,(如果旧文件夹名称为空):

$ cd old-folder-name(parent)
$ rmdir old-folder-name

或者:

$ cd old-folder-name\(parent\)/
$ rm -rf old-folder-name 

相关内容