项目已被 OSX 使用,不能打开

问题描述

windows NTFS 格式的移动硬盘经常出现文件不能打开的情况,文件的颜色变浅,双击打开没有反应,右键打开方式,出现提示:项目 “xxx” 已被 OSX 使用,不能打开。如下图所示:
项目已被 OSX 使用,不能打开

解决方案

解决方案分为两步:

安装 Mounty

正常的 NTFS 格式硬盘是无法从 mac 向其拷贝文件的,因为 mac 系统对其实只读权限,无法修改硬盘内部文件。而该软件的作用是将 NTFS 格式的移动硬盘挂载到 mac 系统上,使系统获得对硬盘的读写权限,便于我们修改硬盘内部的文件。

修改文件信息

安装好 Mounty 后,就可以将硬盘挂载到系统上,并使系统获得对其的读写权限了。

打开 terminal,输入 ls -l 文件名 查看文件权限,可以先输入ls -l空格,然后直接将硬盘中的文件拖拽到 terminal 的该行尾部,回车。发现其权限为 -rwxr-xr-x@ 最末尾的 @ 即表示该文件被 mac osx 占用,如下图所示:
注意观察-rwxr-xr-x@

terminal 中输入 xattr -c 文件名 解除 osx 对文件的占用,此时重复上一步,将不会在权限里面出现@。命令行如下图所示:
清除 @
执行完这个命令后,文件就能正常打开了。这个方法需要安装 Mounty,对于不想安装 Mounty 的,可以通过命令行将硬盘挂载为读写模式,具体方法见下一部分。

挂载硬盘为读写模式

分为以下几步:

  1. 插入硬盘后,查看 /Volumes 下的文件,此时应该能发现两个硬盘,一个是系统的硬盘,另一个是插入的外接硬盘

  2. 输入 diskutil info /Volumes/硬盘名 查看 硬盘的 Device Node。我的是 /dev/disk2s1 (以上两步也可以用 diskutil list 查看,前提是能分辨出哪个是系统硬盘,哪个是刚插上的硬盘)

  3. 弹出该硬盘 hdiutil eject /Volumes/硬盘名,此时终端会输出 "disk2" unmounted 以及 "disk2" ejected

  4. /Volumes/ 下创建一个目录,稍后将硬盘文件挂载到这个目录上 sudo mkdir /Volumes/MYHD

  5. 将硬盘重新挂载到上面的目录中,并赋予读写权限
    sudo mount_ntfs -o rw,nobrowse /dev/disk2s1 /Volumes/MYHD/

  6. 此时可以进入 /Volumes/MYHD 目录,查看硬盘内部文件了

  7. 通过终端进入挂载目录,输入 xattr -c 文件名 就可以解除osx 对文件的占用了,这一步和第一种方法相同。

  8. 最后将硬盘弹出 hdiutil eject /Volumes/MYHD,这个命令执行完后,MYHD 目录也会消失,省的你再删了。