10 votos

Cómo expulsar todas las unidades desde la línea de comandos

Quiero expulsar todos los discos duros con un comando en la Terminal en lugar de ir al Finder y presionar expulsar en cada unidad. ¿Cómo puedo hacerlo?

12voto

mmorin Puntos 128

Usted puede utilizar el construido AppleScript solución, como se ha mencionado en este hilo y esta página, mediante la adición de este a ~/.bash_profile:

alias ejectall='osascript -e "tell application \"Finder\" to eject (every disk whose ejectable is true)"'

Para ello será necesario que la concesión del permiso para la Terminal de control del Finder, o se obtendrá este error:

execution error: Not authorised to send Apple events to Finder. (-1743)

Si quieres un puro bash solución, aquí es una función que se puede llamar con ejectall. Si cambia el nombre de su disco de inicio o tienen diferentes Máquina del Tiempo de las copias de seguridad, puede que necesite modificar la condición de que los filtros de las unidades.

ejectall() {
    total=0
    ejected=0

    for v in /Volumes/*; do
    if [[ $v != *"Macintosh HD" && $v != *"com.apple.TimeMachine"* ]]; then
        echo "Ejecting $v..."
        diskutil eject "$v"

        if [ $? -eq 0 ]; then
        ejected=$(($ejected + 1))
        fi
        total=$(($total + 1))
    fi
    done

    if [ $total -eq 0 ]; then
    echo "No drives to eject"
    else
    msg="$ejected drive(s) ejected"
    failed=$(($total - $ejected))
    if [ $failed -gt 0 ]; then
        msg="$msg, $failed drive(s) failed to eject"
    fi
    echo $msg
    fi
}

Ambos métodos también funcionan para los CDs.

4voto

Greg R. Puntos 499

Use diskutil .

Puede enumerar los dispositivos actuales con diskutil list , y usar diskutil eject device-name para expulsar un dispositivo como desde Finder.

Esto irá un paso más allá que simplemente usar umount , por ejemplo, desconectando un dispositivo USB para que desaparezca el nodo / dev / disk.

Vea man diskutil para más detalles.

2voto

umount tiene una opción para desmontar todos los sistemas de archivos además del principal.

 sudo umount -A
 

También puede forzar esto en caso de que los archivos sigan ocupados / bloqueados (con el riesgo de pérdida de datos) ejecutando

 sudo umount -A -f
 

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X