我.jar
从互联网上下载了一些文件,想在 Mac OS X 下使用它们。但操作系统似乎已用扩展属性 com.apple.quarantine 标记它们(直到我注意到@
中的“ ”ls -l
并弄清楚如何使用 时才发现这一点ls -l@
)——显然是因为它们是从互联网上下载的。处理这个问题的正确方法是什么?
答案1
添加此属性是为了在首次运行下载的程序时要求用户确认,以帮助阻止恶意软件。确认后,该属性应自动删除,然后程序将正常运行。
答案2
你不需要有来处理它。打开它,OS X 会请求你的许可。或者像 richard 建议的那样,使用类似下面的命令删除它:
xattr -d com.apple.quarantine my_jar.jar
要自动对任何下载的文件执行此操作,您可以将文件夹操作附加到下载文件夹,如 macosxhints.com 中所述10.5:删除“已下载文件”警告标志。
以下内容很久以前就已在 macosxhints.com 上发布,适用于 Safari:10.5:禁用“从互联网下载”文件警告,声称可以VerifiedDownloadPlugin.plugin
从中删除/Library/Internet Plug-Ins
。我没有测试过。
另外:有时需要在 Mac 上多次启动一个程序。可以使用cd /Applications/some-application/
后跟 来完成open -n "Application Name.app"
。这确实需要.app
后缀;运行open -n "Application Name"
可能会让一个 GateKeeper 停止访问:
无法打开“应用程序名称”,因为它来自未知的开发商。
您的安全偏好设置仅允许安装来自 Mac App Store 和已识别开发商的应用程序。
上面,即使删除扩展属性也com.apple.quarantine
无法解决这个问题,但使用.app
后缀就可以了。
(我并不是建议任何人真正放弃安全措施。)
答案3
xattr -d com.apple.quarantine /path/to/file
答案4
我找到了以下命令
find Application.app | while read l; do echo $l; xattr -d com.apple.quarantine "$l"; done
在尝试删除该属性时非常有用。请注意周围的双引号$l
- 如果您的应用程序文件夹包含名称中带有空格的文件,则需要它们。