Identifica i dischi esterni collegati a livello di programmazione

3

Voglio scrivere uno script di shell che espelle tutte le unità esterne attualmente connesse (unità USB o Firewire). Posso usare disktuil eject <disk-path> per espellere un'unità specificata. Ma non riesco ancora a capire come scoprire quali sono le unità esterne. Ad esempio, /Volumes mostra unità interne, unità esterne e immagini montate. C'è un modo per identificare solo le unità esterne a livello di programmazione?

    
posta ejel 10.07.2011 - 22:53
fonte

2 risposte

4

Hai preso in considerazione l'utilizzo di diskutil info /dev/disk[n|s{n}] | grep Ejectable che ti consente di identificare se il dispositivo (o la sezione del dispositivo) è rimovibile.

Questo dovrebbe essere espanso in uno script usando awk per lavorare su ogni dispositivo disco attualmente collegato per determinare se può essere espulso e quindi espellerlo.

    
risposta data 11.07.2011 - 06:19
fonte
1

In una finestra di terminale (bash shell)

informazioni diskutil / Volumi / nome-del-volume

restituirà un elenco di proprietà del volume, incluso

Protocollo: FireWire ...    Ejectable: sì    Intero: no    Interno: No

quindi, suppongo che potresti iniziare con quello. Non sono chiaro su cosa la proprietà "Interno" implica, potrebbe essere meglio guardare "Protocollo" se il problema riguarda Firewire o dispositivi esterni USB.

    
risposta data 11.07.2011 - 23:21
fonte

Leggi altre domande sui tag