在 OSX 中无法删除空目录

在 OSX 中无法删除空目录

这篇文章有点长,抱歉。简短的版本是:我有一个无法删除的目录。当我尝试与它交互时,终端给出“输入/输出错误”。我扫描了磁盘以查找错误,但没有发现任何错误。问题的根源似乎是系统认为这是一个链接,而实际上它是一个目录。我该如何删除它?

故事模式:我的桌面上有一个名为“media”的目录,我通过 SSH(fuse/sshfs)将另一个目录挂载到该目录中。目录打开时连接丢失。Finder 崩溃,目录从桌面上消失。但是它仍然在那里:

Desktop mike$ ls -1  
media  
templates  
Desktop mike$ mkdir media  
mkdir: media: File exists 

我尝试对目录执行的几乎所有操作都会出现“输入/输出”错误:

Desktop mike$ ls -i  
ls: media: Input/output error  
Desktop mike$ sudo rm -rf media  
rm: media: Input/output error  
Desktop mike$ sudo unlink media  
unlink: media: Input/output error  
Desktop mike$ sudo chmod 777 media  
chmod: media: Input/output error  
Desktop mike$ touch media  
touch: media: Input/output error  
cd ./media  
cd: error retrieving current directory: getcwd: cannot access parent directories: Input/output error

如果我尝试重新挂载远程 SSH 目录,也会得到同样的结果:

fuse:错误的挂载点‘./media/’:输入/输出错误

即使它在桌面或 Finder 中不可见,我也可以搜索并找到它。右键单击搜索结果不会提供删除选项——只有打开和属性。属性显示创建和修改时间(正确)以及一个空白图标。我也可以选择打开该项目,在这种情况下它会给我:

"The alias 'media' can't be opened because the original item can't be found. Delete, Fix, or OK." 

当我尝试删除时,同样的对话框不断弹出;选择修复会要求选择要链接到的新项目。执行此操作会报告:“未知错误 -1407”,Google 告诉我这意味着“预期为文件夹,但得到的是文件。”

我可以移动目录,但前提是将其保留在桌面上:

Desktop mike$ mv ./media ./a  
Desktop mike$ ls -i  
ls: a: Input/output error  
Desktop mike$ mv ./a ../  
mv: cannot resolve a: /Users/mike/Desktop/a

有什么办法可以删除它吗?或者至少让系统相信这是一个目录而不是链接?

答案1

抱歉,我解决这个问题后没有更新。我感谢所有知情的回复。原来这是一件非常简单的事情。浏览 Linux 留言板时,我发现这是一种通过 sshfs 挂载的已知问题。

https://bbs.archlinux.org/viewtopic.php?id=94725

我遇到了 OP 在该帖子中描述的每一个问题,以及 Finder 隐藏挂载点的问题(也许它无法统计挂载点或其他原因,所以它只是没有显示挂载点)。“...尝试访问断开连接的 sshfs 共享的进程进入不间断睡眠状态。”快速修复是停止 sshfs。“killal sshfs”对我来说就足够了。我想重新启动也可以。

答案2

我刚刚遇到了同样的问题。原来这目前被列为漏洞在 osxfuse 上。解决方法是手动终止 sshfs 进程,然后卸载远程目录。之后,您甚至可以删除本地挂载点。

答案3

我猜测您无法在“磁盘工具”上选择“修复磁盘”的原因是问题出在您的启动磁盘上。

我建议使用以下方法之一:

  • 如果您使用的是 OS X Lion (10.7),请从恢复分区启动(启动机器时按住 CMD-R),从那里运行磁盘工具,然后尝试修复磁盘;
  • 如果你使用的是旧版本的 OS X,你可以从外部磁盘启动,也可以安装苹果白兰地(免费软件);
  • 如果一切都失败了,我会尝试磁盘战士(虽然不是免费的,但在处理我的数据时仍然是我最信赖的工具)。

相关内容