Espulsione istantanea di tutte le unità e dischi montati dalla riga di comando in Mac OS X

La prossima volta che sarai alla riga di comando e dovrai espellere ogni singolo volume montato, disco rigido, disco, immagine disco e / o unità esterna collegata a un Mac, potrai immediatamente espellerli tutti in un colpo solo con un comodo stringa di comando osascript. Questo è ottimo se lavori spesso nel Terminale e vuoi impacchettare rapidamente una workstation ed uscire, ma è anche molto utile per gestire in remoto i Mac attraverso una connessione SSH, o aggiungendo ad uno script di shell, tra altri potenziali usi .

Per coloro che non hanno familiarità con osScript, è un'interfaccia a riga di comando per AppleScript che consente di eseguire AppleScript e script di lingua OSA dal terminale. La funzionalità è piuttosto semplice, in pratica si limita a darle uno script o una dichiarazione che altrimenti inseriresti nell'Editor di AppleScript, e l'intera cosa viene gestita dal terminale piuttosto che doverla avviare nell'app della GUI all'interno di OS X. Utilizziamo osject per espellere tutti i volumi montati su un Mac.

Espulsione di tutti i volumi, le unità e le immagini disco montate tramite terminale

Dal Terminale, esegui la seguente stringa di comando su una singola riga:

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

Come al solito con la riga di comando, assicurati che l'intera sintassi del comando sia su una riga. A meno che la finestra del terminale non sia impostata su un valore molto elevato, è probabile che vada a capo, va bene.

Nel momento in cui premi il tasto Invio per eseguire il comando, i volumi inizieranno l'espulsione. Le immagini del disco e i volumi di rete vanno immediatamente, mentre i dischi rigidi esterni gireranno prima di essere espulsi. Tuttavia, anche se è necessario attendere lo spin up di alcune unità, l'intera attività è molto veloce e non sono necessarie ulteriori interazioni.

Esistono sicuramente altri modi per farlo, compresi gli strumenti hdiutil e diskutil, ma il metodo osascript è probabilmente il più veloce poiché espelle tutto senza dover utilizzare i punti di montaggio. Se ti capita di conoscere un altro metodo per espellere i volumi, forse uno che è compatibile con più piattaforme in modo che funzioni su Mac OS X e Linux, faccelo sapere nei commenti.

Ritrovati spesso con questo? Considera di aggiungerlo al tuo bash_profile con un alias per abbreviare la lunghezza del comando. Basta aggiungere qualcosa come il seguente a .bash_profile per questo scopo:

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

Questo ti permette solo di digitare 'ejectall' piuttosto che l'intera stringa di comando.

Ovviamente, tutto ciò è un po 'avanzato, e la maggior parte degli utenti Mac è meglio servita per espellere i dischi tenendo premuto il tasto di espulsione o passando attraverso il Finder di OS X trovandoli nella barra laterale, passando con il mouse sopra il nome e facendo clic sul pulsante di espulsione .