Quiero escribir un script de shell que expulsa a todas las unidades externas conectadas (ya sea USB o Firewire unidades). Puedo usar el disktuil eject <disk-path>
a expulsar una unidad especificada. Pero todavía no puedo entender cómo averiguar cuáles son las unidades externas. Por ejemplo, /Volumes
muestra de unidades internas, unidades externas, y las imágenes montadas. Es allí una manera de identificar sólo las unidades externas mediante programación?
Respuestas
¿Demasiados anuncios?Ha considerado el uso de diskutil info /dev/disk[n|s{n}] | grep Ejectable
que permite identificar si el dispositivo (o dispositivos rebanada) es ejectable.
Esto tendría que ser ampliado en un script utilizando awk
a trabajar a través de cada dispositivo de disco que actualmente está conectado a determinar si puede ser expulsado y luego expulsarlo.
En una ventana de terminal (shell bash)
diskutil info /Volúmenes/nombre-de-volumen
devuelve una lista de propiedades del volumen, incluyendo
Protocolo: FireWire ... Ejectable: Sí Todo: No Interna: No
así que, supongo que podría empezar con eso. No estoy claro en lo que la "Interna" de la propiedad implica, podría ser mejor para mirar "Protocolo" si su preocupación es con Firewire o USB dispositivos externos.