Identifique los discos externos conectados mediante programación

3

Quiero escribir un script de shell que expulse todas las unidades externas actualmente conectadas (unidades USB o Firewire). Puedo usar disktuil eject <disk-path> para expulsar una unidad específica. Pero todavía no puedo averiguar cómo averiguar cuáles son las unidades externas. Por ejemplo, /Volumes muestra unidades internas, unidades externas e imágenes montadas. ¿Hay una manera de identificar solo las unidades externas mediante programación?

    
pregunta ejel 10.07.2011 - 22:53

2 respuestas

4

¿Ha considerado usar diskutil info /dev/disk[n|s{n}] | grep Ejectable que le permite identificar si el dispositivo (o el segmento del dispositivo) es eyectable?

Esto debería ampliarse en una secuencia de comandos que use awk para trabajar a través de cada dispositivo de disco que esté conectado actualmente para determinar si se puede expulsar y luego expulsarlo.

    
respondido por el RobPaller 11.07.2011 - 06:19
1

En una ventana de terminal (shell bash)

diskutil info / Volumes / name-of-volume

devolverá una lista de propiedades del volumen, incluyendo

Protocolo: FireWire ...    Eyectable: si    Entero: no    Interno: No

entonces, supongo que podrías empezar con eso. No tengo claro qué La propiedad "Interna" implica, podría ser mejor mirar "Protocolo" si su preocupación es con dispositivos Firewire o USB externos.

    
respondido por el Whit3rd 11.07.2011 - 23:21

Lea otras preguntas en las etiquetas