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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top