Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

is there a way to eject all external hard drives from the command line? (OS X)

Is there a way to eject all the mounted hard drive volumes on an OS X computer from the command line? Applescript is OK if I can wrap that in a shell script.

like image 898
dan Avatar asked Jan 12 '10 14:01

dan


2 Answers

There is another elegant way to unmount all external hard drives without knowing the exact names:

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

To ignore network mounts and optical disks, use:

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)'
like image 58
naich Avatar answered Oct 02 '22 08:10

naich


In Terminal try:

  • umount -a (All the filesystems described via getfsent(3) are unmounted.)
  • umount -A (All the currently mounted filesystems except the root unmounted.)

Fore more information see man umount.

Update:

Seems like you can also use this:

diskutil unmountDisk /dev/disk*

Didn't test it, though. If it doesn't work, try to use "unmount" instead of "unmountDisk".

Oh, I also found the eject argument (instead of unmountDisk). That might also be of interest.

Update 2:

diskutil eject /dev/* seems what you are looking for (see comments).

like image 25
BastiBen Avatar answered Oct 02 '22 09:10

BastiBen