Есть ли способ извлечь все смонтированные тома жесткого диска на компьютер OS X из командной строки? Applescript в порядке, если я могу обернуть это в оболочку script.
Есть ли способ извлечь все внешние жесткие диски из командной строки? (OS X)
Ответ 1
В терминале попробуйте:
-
umount -a
(Все файловые системы, описанные через getfsent (3), размонтируются.) -
umount -a
(Все текущие смонтированные файловые системы, кроме root unmounted.)
Для получения дополнительной информации см. man umount
.
Обновление:
Похоже, вы также можете использовать это:
diskutil unmountDisk /dev/disk*
Не тестировал. Если это не сработает, попробуйте использовать "unmount" вместо "unmountDisk".
О, я также нашел аргумент eject
(вместо unmountDisk
). Это также может представлять интерес.
Обновление 2:
diskutil eject /dev/*
похоже на то, что вы ищете (см. комментарии).
Ответ 2
Существует еще один элегантный способ размонтировать все внешние жесткие диски, не зная точных имен:
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)'
Ответ 3
Я нашел, что это работает для извлечения всех dmg и физических жестких дисков:
find /dev -name "disk[1-9]" -exec diskutil eject {} \;
Ответ 4
Вы также можете использовать diskutil eject /dev/disk2
или любой номер своего устройства, который вы хотите извлечь. Это сработало для меня.
Ответ 5
Я делаю это так:
df | grep Volumes | awk '{ print $1 }' | while read disk; do diskutil unmount "$disk"; done