Есть ли способ извлечь все внешние жесткие диски из командной строки? (OS X) - PullRequest
13 голосов
/ 12 января 2010

Есть ли способ извлечь все подключенные тома жесткого диска на компьютере с OS X из командной строки? Applescript в порядке, если я могу обернуть это в сценарий оболочки.

Ответы [ 5 ]

17 голосов
/ 28 августа 2011

Существует еще один элегантный способ размонтировать все внешние жесткие диски, не зная точных имен:

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

Чтобы игнорировать сетевые и оптические диски, используйте:

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true and local volume is true and free space is not equal to 0)'
10 голосов
/ 12 января 2010

В терминале попробуйте:

  • umount -a (Все файловые системы, описанные через getfsent (3), отключены.)
  • umount -A (Все смонтированные в настоящее время файловые системы, кроме корневого, не смонтированного.)

Подробнее см. man umount.

Обновление:

Похоже, вы также можете использовать это:

diskutil unmountDisk /dev/disk*

Хотя не проверял. Если это не работает, попробуйте использовать «unmount» вместо «unmountDisk».

О, я также нашел аргумент eject (вместо unmountDisk). Это также может представлять интерес.

Обновление 2:

diskutil eject /dev/* кажется, что вы ищете (см. Комментарии).

5 голосов
/ 08 апреля 2011

Я обнаружил, что это работает для извлечения всех dmg и физических жестких дисков:

find /dev -name "disk[1-9]" -exec diskutil eject {} \;
0 голосов
/ 09 мая 2015

Я делаю это так:

df | grep Volumes | awk '{ print $1 }' | while read disk; do diskutil unmount "$disk"; done
0 голосов
/ 17 марта 2014

Вы также можете использовать diskutil eject /dev/disk2 или любой другой номер вашего устройства, который вы хотите извлечь. Это сработало для меня.

...