什么原因导致目录具有 d????????? 的权限、?的所有者、?的组、?的时间,但名称却?

什么原因导致目录具有 d????????? 的权限、?的所有者、?的组、?的时间,但名称却?

我在 Windows 上使用 Windows Subsystem for Linux 和 Ubuntu 上的 Bash 来支持在 Windows 上得不到良好支持的编程语言。我注意到建议不要使用 Windows 工具创建/修改 Linux 文件。我按照这个建议保存了所有我想在 Windows 上的编辑器/IDE 中编辑的文件/mnt/c/Users/{username}/...。到目前为止,一切进展顺利。

但是,我想删除一个我临时使用的目录。我无法从 Ubuntu Bash shell 或 Windows 资源管理器界面删除它。我首先尝试从Bash 中删除rm -rfsudo rm -rf,没有错误输出,但目录仍然存在。我尝试删除rm -rfsudo rm -rf父目录:Directory not empty。我尝试通过 Windows 删除,出现一个对话框,提示我需要提供管理员权限。我照做了,所以我得到另一个对话框,提示我需要权限才能执行此操作。我尝试通过 Windows 资源管理器更改权限以及使用chownchmod并重复删除步骤,但没有立即成功。

在 Windows 和 Linux 上执行一次删除过程后,尝试通过 Windows 和 Linux 更改权限/组,然后再次尝试删除,该目录仍然存在。然而,在尝试回复评论时,该文件最终被删除了。

什么原因导致了这种明显无效的状态以及我该如何防止它再次发生?

答案1

您所描述的情况是文件损坏的结果。最可能的原因是文件写入过程中发生崩溃。在典型的 Linux 安装中,您需要卸载文件系统并运行 fsck。例如:

umount /dev/sda5
fsck.ext4 /dev/sda5

如果是 xfs 文件系统,

xfs_repair /dev/sda5

由于您在 Windows 上运行 ubuntu/bash,您可能需要在 Windows 中运行 chkdsk 来清除错误。如果错误无需干预即可消失,则可能是 Windows 检测到了该问题并在启动期间对其进行了修复。

相关内容