Получите путь к файлу .dmg из точки монтирования

StackOverflow https://stackoverflow.com/questions/1949879

  •  21-09-2019
  •  | 
  •  

Вопрос

Я ищу способ получить .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

Удачи.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top