есть ли способ извлечь все внешние жесткие диски из командной строки? (ОС Х)

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


person dan    schedule 12.01.2010    source источник
comment
Перейдите на Super User, мне кажется.   -  person Noldorin    schedule 17.07.2012


Ответы (5)


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

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

Для получения дополнительной информации см. man umount.

Обновлять:

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

diskutil unmountDisk /dev/disk*

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

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

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

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

person BastiBen    schedule 12.01.2010
comment
Почему нет? Любые сообщения об ошибках? Если да, пожалуйста, разместите их здесь. Также вы пробовали вариант -A (заглавная буква A). - person BastiBen; 12.01.2010
comment
Я попробовал umount -a, и окно поиска открылось, но на этом все. Мне придется попробовать другие команды сегодня вечером, когда я вернусь к своим внешним жестким дискам. - person dan; 12.01.2010
comment
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)'
person naich    schedule 28.08.2011
comment
Это, вероятно, самый правильный способ сделать это, хотя синтаксис ужасен. - person Barry Jones; 09.08.2017

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

find /dev -name "disk[1-9]" -exec diskutil eject {} \;
person StumblingMages    schedule 08.04.2011

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

df | grep Volumes | awk '{ print $1 }' | while read disk; do diskutil unmount "$disk"; done
person dstronczak    schedule 09.05.2015

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

person Richard Johnson    schedule 17.03.2014