有没有办法从命令行弹出所有外部硬盘? (OS X)

时间:2010-01-12 14:49:15

标签: macos command-line applescript

有没有办法从命令行弹出OS X计算机上的所有已安装的硬盘驱动器卷?如果我可以将它包装在shell脚本中,那么Applescript就可以了。

5 个答案:

答案 0 :(得分:17)

还有一种优雅的方法可以在不知道确切名称的情况下卸载所有外部硬盘:

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)'

答案 1 :(得分:10)

在终端尝试:

  • umount -a (通过getfsent(3)描述的所有文件系统都已卸载。)
  • umount -A (除了已卸载的根目录之外的所有当前挂载的文件系统。)

有关详情,请参阅man umount

更新

似乎你也可以使用它:

diskutil unmountDisk /dev/disk*
但是,没有测试它。如果它不起作用,请尝试使用“unmount”而不是“unmountDisk”。

哦,我还找到了eject参数(而不是unmountDisk)。这也可能是有意义的。

更新2:

diskutil eject /dev/*似乎正在寻找(见评论)。

答案 2 :(得分:5)

我发现这适用于弹出所有dmg和物理硬盘:

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

答案 3 :(得分:0)

您还可以使用diskutil eject /dev/disk2或您要弹出的设备号。这对我有用。

答案 4 :(得分:0)

我这样做:

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