我正在寻找一种方法来获取已安装的磁盘映像的.dmg路径,只有它的挂载点。
我想写一个“简单”的Finder服务,它会弹出磁盘映像并破坏随附的.dmg。弹出是微不足道的,但是我不知道如何在给定挂载点的情况下找出.dmg的路径。
diskutil 似乎不知道或不说。
这是一个脚本,所以首选AppleScript或基于shell的建议。
答案 0 :(得分:16)
使用hdiutil info
获取有关当前已装载图像的信息。然后
使用hdiutil detach /Mount/Point
卸载所有文件系统,并分离图像。
如果安装了多个图像,则需要解析hdiutil info
的输出以找到正确的图像路径。使用plist输出格式hdiutil info -plist
并使用plistlib的python脚本或使用Property List Suite
中的System Events
的AppleScript运行它可能会更强大。
这是一个快速而又脏的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
答案 1 :(得分:4)
启动终端,执行:
$ cd /Volumes
$ hdutil info
疑似dmg文件的位置将显示在image-path
下 cd
到该位置,并执行:
$ ls filename
在Finder中卸载卷,最后在终端中卸载:
$ rm filename
祝你好运。