2009-12-22 36 views
14

Tôi đang tìm cách tải đường dẫn .dmg của hình ảnh đĩa được gắn với điểm gắn kết của nó.Nhận đường dẫn của .dmg từ điểm gắn kết

Tôi muốn viết một dịch vụ tìm kiếm "đơn giản" để đẩy hình ảnh đĩa ra và cắt bỏ .dmg đi kèm. Việc đẩy ra là tầm thường, nhưng tôi thua lỗ như thế nào để tìm ra đường dẫn của .dmg, chỉ cho điểm gắn kết.

diskutil dường như không biết hoặc không nói.

Nó dành cho một tập lệnh, vì vậy các đề xuất dựa trên AppleScript hoặc dựa trên vỏ được ưu tiên.

+0

Tôi không nghĩ rằng bạn sẽ nhận được một đề xuất dựa trên AppleScript hoặc shell vì bạn có thể sẽ phải nói chuyện với người lái xe, hoặc ít nhất là tác nhân người dùng của nó, cho điều đó. –

+0

Tôi nghĩ rằng có thể có một cái gì đó như hdiutil hoặc diskutil có thể giúp đỡ, hoặc có lẽ là một tài sản Finder trên gắn hình ảnh đĩa. – wbg

Trả lời

15

Sử dụng hdiutil info để nhận thông tin về hình ảnh được gắn hiện tại. Sau đó, sử dụng hdiutil detach /Mount/Point để tháo dỡ tất cả các hệ thống tệp và tách hình ảnh.

Bạn sẽ cần phải phân tích đầu ra từ hdiutil info để tìm đúng đường dẫn hình ảnh nếu nhiều hình ảnh được gắn kết. Nó có thể sẽ mạnh mẽ hơn để sử dụng định dạng đầu ra plist hdiutil info -plist và chạy nó thành, ví dụ, một tập lệnh python với plistlib hoặc một AppleScript sử dụng Property List Suite từ System Events.

Đây là tập lệnh python nhanh và bẩn để cung cấp cho bạn ý tưởng. Thật dễ dàng để tìm tòi những cách sử dụng thông dịch viên 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 
+0

Tuy nhiên, điều đó sẽ không giúp tôi loại bỏ .dmg. – wbg

+0

Xin lỗi, đã bỏ lỡ điểm đó. Xem câu trả lời cập nhật. –

+0

Brilliant! thông tin hdiutil chỉ là những gì tôi đang tìm kiếm! – wbg

3

Bắt đầu Terminal, làm:

$ cd /Volumes 
$ hdutil info 

Vị trí của nghi ngờ dmg-file sẽ xuất hiện dưới hình ảnh con đường

cd đó vị trí và làm:

$ ls filename 

Ngắt kết xuất trong Trình tìm kiếm và cuối cùng trong Nhà ga:

$ rm filename 

Chúc may mắn.

Các vấn đề liên quan