15

我正在寻找一种仅使用其安装点来获取已安装磁盘映像的 .dmg 路径的方法。

我想编写一个“简单”的 Finder 服务来弹出磁盘映像并丢弃随附的 .dmg。弹出是微不足道的,但我不知道如何找出 .dmg 的路径,只给定安装点。

diskutil似乎不知道或没有说。

它适用于脚本,因此首选基于 AppleScript 或 shell 的建议。

4

2 回答 2

18

用于hdiutil info获取有关当前安装的图像的信息。然后用于hdiutil detach /Mount/Point卸载所有文件系统,并分离映像。

hdiutil info如果安装了多个图像,您需要解析输出以找到正确的图像路径。hdiutil info -plist使用 plist 输出格式并将其运行到例如带有plistlibProperty List Suite的 python 脚本或使用from的 AppleScript可能会更加健壮System Events

这是一个快速而肮脏的python脚本,可以给你一个想法。使用 python 解释器很容易探索选项:

>>> import plistlib
>>> from subprocess import Popen, PIPE
>>> output = Popen(["hdiutil", "info", "-plist"], stdout=PIPE).communicate()[0]
>>> pl = plistlib.readPlistFromString(output)
>>> for image in pl['images']:
...   for se in image['system-entities']:
...       if se.get('mount-point') == '/Volumes/blah':
...          print image['image-path']
/Path/To/blah.dmg
于 2009-12-22T23:47:30.447 回答
4

启动终端,执行:

$ cd /Volumes
$ hdiutil info

可疑 dmg 文件的位置将显示在 image-path 下

cd到那个位置,然后做:

$ ls filename

在 Finder 中卸载卷,最后在终端中卸载:

$ rm filename

祝你好运。

于 2014-06-15T22:36:15.923 回答