代码之家  ›  专栏  ›  技术社区  ›  wbg

从安装点获取.dmg的路径

  •  14
  • wbg  · 技术社区  · 15 年前

    我正在寻找一种方法来获取挂载磁盘映像的.dmg路径,该路径只包含挂载点。

    我想写一个“简单”的查找服务,它弹出磁盘图像并将附带的.dmg丢弃。弹出是微不足道的,但是我对于如何确定.dmg的路径感到茫然,只给出了挂载点。

    迪斯科蒂尔 似乎不知道或不说。

    这是一个脚本,所以最好使用基于applesccript或shell的建议。

    2 回复  |  直到 11 年前
        1
  •  16
  •   Ned Deily    15 年前

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

    您需要分析 信息检索 如果安装了多个图像,则查找正确的图像路径。使用plist输出格式可能更可靠 hdiutil info -plist 然后运行到,比如说,一个带有 plistlib 或者使用 Property List Suite 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
    
        2
  •  4
  •   OJFord    11 年前

    启动终端,执行:

    $ cd /Volumes
    $ hdutil info
    

    可疑DMG文件的位置将显示在图像路径下。

    cd 去那个地方,然后做:

    $ ls filename
    

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

    $ rm filename
    

    祝你好运。

    推荐文章