質問

マウントポイントだけを使用して、マウントされたディスクイメージの.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

幸運ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top