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