Para expulsar un disco local, es decir, conectado directamente a tu Mac, simplemente tienes que arrastrarlo a la papelera o seleccionarlo y pulsar el atajo de teclado Comando + tecla E. Pero en ocasiones, o simplemente, para rizar el rizo, puedes usar este Applescript que además de ser útil en ciertas ocasiones es un gran ejemplo de estudio de cómo trabajar con discos duros y variables.
Para ejecutarlo, copia y pega el Applescript en el Editor Applescript:
set alldisks to paragraphs of (do shell script «df -hlg | awk -F/ ‘/disk*/ {print $5}'»)
try
set item 1 of alldisks to ((characters 1 thru -2 of (path to startup disk as string)) as text)
on error
set alldisks to {((characters 1 thru -2 of (path to startup disk as string)) as text)}
end try
set dur to {}
repeat with m in alldisks
considering case
if m is not in {«MobileBackups»} then
set dur to dur & m
end if
end considering
end repeat
set devnames to paragraphs of (do shell script «df -k | awk -F/ ‘/disk*/ {print $3}'»)
set t to {}
repeat with s in devnames
set t to t & (word 1 of s)
end repeat
set the keylist to dur
set the foundDisks to t
set answer_list to {}
repeat with the_answer in keylist
set theIndex to my CollectUniqueItemIndex(keylist, (the_answer as string))
set theValue to item theIndex of foundDisks
activate
–set answer_list to answer_list & return & ((the_answer & «:» & space & theValue) as string)
–set answer_list to answer_list & ((the_answer & «:» & space & theValue) as string)
set answer_list to answer_list & (the_answer as string)
end repeat
set your_selected_device_id to choose from list answer_list with prompt «Por favor, seleccione los discos a expulsar.» with multiple selections allowed
repeat with b in your_selected_device_id
set theIndex to my CollectUniqueItemIndex(answer_list, (b as string))
set theValue to item theIndex of foundDisks
–display dialog «The device name of a volume you selected is:» & space & «»» & theValue & «».» & space & «Are you sure you want to unmount it?»
try
do shell script «diskutil unmount /dev/» & theValue
on error the error_message number the error_number
display dialog «Error: » & the error_number & «. » & the error_message buttons {«OK»} default button 1
end try
end repeat
on CollectUniqueItemIndex(theList, theItem) — the Item can be string, number, constant, app object or list
local aListMember
repeat with i from 1 to (count theList)
set aListMember to item i of theList
if aListMember = theItem then
set theIndex to i
exit repeat
end if
end repeat
return theIndex
end CollectUniqueItemIndex
Al ejecutarlo, te aparecerá un cuadro de diálogo en el que podrás seleccionar varios discos y expulsarlos todos de una tacada. Funciona con Mac OS X 10.6 Snow Leopard y OS X 10.7 Lion.
Más fáci!!!
tell application «Finder»
eject (every disk)
end tell
¿no?
SI quieres notificación Growl cuando haya terminado (ya que a veces tarda y el Finder está escondido tras cienes de ventanas:
tell application «Finder»
eject (every disk)
end tell
tell application «System Events» to set Growler to exists application process «GrowlHelperApp»
if Growler then
tell application «GrowlHelperApp» to register as application «MyApp» all notifications {«Note»} default notifications {«Note»} icon of application «MyApp»
tell application «GrowlHelperApp»
notify with name «Note» title «Disks» description «Disks ejected» application name «MyApp» without sticky
end tell
else
tell application «System Events» to display dialog «Every disk ejected» with icon note buttons {«Bye»} default button 1 giving up after 5
end if
#1 Es una buena opción, aunque este Applescript te permite seleccionar los discos y expulsar solo los que no te interesan, no todos de golpe.
Un abrazo