Получите путь к файлу .dmg из точки монтирования
Вопрос
Я ищу способ получить .dmg -путь к смонтированному образу диска, используя только его точку монтирования.
Я хочу написать "простой" сервис Finder, который извлекает образ диска и уничтожает прилагаемый файл .dmg.Извлечение тривиально, но я в недоумении относительно того, как определить путь к .dmg, учитывая только точку монтирования.
дискутил похоже, не знает или не говорит.
Это для скрипта, поэтому предпочтительнее предложения на основе AppleScript или командной строки.
Решение
Использование hdiutil info
чтобы получить информацию о смонтированных в данный момент изображениях.Тогда
используй hdiutil detach /Mount/Point
чтобы отключить все файловые системы и отсоединить образ.
Вам нужно будет проанализировать выходные данные из hdiutil info
чтобы найти правильный путь к изображению, если смонтировано несколько изображений.Вероятно, будет более надежным использовать формат вывода plist hdiutil info -plist
и запустите это, скажем, в скрипте python с плистлиб или AppleScript , использующий 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
Другие советы
Запустите терминал, выполните:
$ cd /Volumes
$ hdutil info
Местоположение подозреваемых dmg-файлов будет отображаться в разделе image-path
cd
в это место и выполните:
$ ls filename
Отключите громкость в Finder и, наконец, в терминале:
$ rm filename
Удачи.