質問
マウントポイントだけを使用して、マウントされたディスクイメージの.dmgパスを取得する方法を探しています。
ディスクイメージを取り出し、付随する .dmg をゴミ箱に入れる「単純な」Finder サービスを作成したいと考えています。取り出すことは簡単ですが、マウントポイントだけが与えられた場合、.dmgのパスを特定する方法がわかりません。
ディスクユーティリティ 知らないようだ、あるいは言っていない。
これはスクリプト用であるため、AppleScript またはシェルベースの提案が推奨されます。
解決
使用 hdiutil info
現在マウントされているイメージに関する情報を取得します。次に、使用します hdiutil detach /Mount/Point
すべてのファイル システムをマウント解除し、イメージを切り離します。
からの出力を解析する必要があります。 hdiutil info
複数のイメージがマウントされている場合に、正しいイメージパスを見つけます。おそらく plist 出力形式を使用する方がより堅牢になります。 hdiutil info -plist
それを、たとえば、次のような Python スクリプトに実行します。 plistlib または、を使用した 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-ファイルの位置は、画像パスの下に表示されます
その場所にcd
、および行います:
$ ls filename
Finderで、最終的にターミナルでアンマウントし、ボリュームます:
$ rm filename
幸運ます。