Pegue o caminho do .dmg do ponto de montagem
Pergunta
Estou procurando uma maneira de obter o caminho .dmg de uma imagem de disco montada apenas com seu ponto de montagem.
Quero escrever um serviço de localizador "simples" que ejeta a imagem do disco e destrua o .dmg que acompanha. A ejeção é trivial, mas estou sem saber como descobrir o caminho do .dmg, dado apenas o ponto de montagem.
diskutil Não parece saber ou não estar dizendo.
É para um script, para que as sugestões baseadas em AppleScript ou shell sejam preferidas.
Solução
Usar hdiutil info
Para obter as informações sobre imagens atualmente montadas. Em seguida, use hdiutil detach /Mount/Point
Para desmontar todos os sistemas de arquivos e separar a imagem.
Você precisará analisar a saída de hdiutil info
Para encontrar o caminho de imagem certo se várias imagens forem montadas. Provavelmente será mais robusto usar o formato de saída do Plist hdiutil info -plist
e execute isso em, digamos, um script python com Plistlib ou um AppleScript usando o Property List Suite
a partir de System Events
.
Aqui está um script Python rápido e sujo para lhe dar uma ideia. É fácil explorar opções usando o intérprete 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
Outras dicas
Inicie o terminal, faça:
$ cd /Volumes
$ hdutil info
A localização dos suspeitos de arquivos DMG aparecerá em Path de imagem
cd
para esse local e faça:
$ ls filename
Volume desmontado em Finder e, finalmente, no terminal:
$ rm filename
Boa sorte.