我在寻找一种方式来获得只挂载点安装的磁盘映像的路径的.dmg

我想要写喷射磁盘映像和象垃圾一样清除所附的.dmg一个“简单”搜索服务。喷射是微不足道的,但我在一个不知如何找出的.dmg的路径,只给定安装点。

磁盘工具似乎不知道或不说。

这是一个为脚本,所以AppleScript-或基于壳的建议是优选的。

有帮助吗?

解决方案

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

您需要解析来自hdiutil info输出,如果多个图像被安装找到正确的图像路径。它可能会更加强劲使用的plist输出格式hdiutil info -plist并运行到,比方说,一个python脚本的Property List Suite从System Events> plistlib 或一个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

其他提示

启动终端,执行:

$ cd /Volumes
$ hdutil info

疑似DMG-文件的位置将显示图像路径下

cd到该位置,然后执行:

$ ls filename

卸载体积在Finder中,最后在终端:

$ rm filename

好运。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top