如何快速弹出所有外部分区?


15

我有一个带有两个分区的外置磁盘,当我坐在办公桌前时,我一直将它们插入MacBook Pro。(一个用于Time Machine,另一个用于额外的存储。)有时,我需要快速拿起笔记本电脑并将其放在某个地方,但是我必须切换到一个可以在桌面上看到分区的空间,将它们关联起来,两个-手指单击,然后选择Eject。在Mavericks下有没有更快的方法,还是我必须使用键盘快捷键来设置像这样的AppleScript ?

注意:我希望仅在Mac进入睡眠状态时弹出这些文件(如此处所述)。有时,我正在使用共享屏幕的电视,如果您知道我的意思,我必须把Mac从办公桌上拿开一分钟。


我使用Alfred.app来完成此任务。它使按下<kbd>cmd</kbd>+<kbd>space</kbd>和键入一样容易eject。强烈推荐
wrossmck

下面有很多好的答案。我很难选择一个最好的。
Jim L.

这个地方对我们两个人@JimL来说还不够大。猜猜我得走了。(抱歉,我知道我的意见是无关紧要的,但我看到了另一篇文章中他的名字,并认为,真正做了双重考虑:“我没写!”
JimLohse

Answers:


7

在OS-X Mountain-Lion上,我可以选择单击“弹出”图标之一(按住选项,然后单击弹出图标),然后将弹出所有外部分区。

(更新)我怀疑它也可以在OS X Mavericks甚至macOS Sierra上使用。可以假定它至少可在两者之间的所有版本上运行(尝试一下!)。


这在小牛队下仍然有效。
Jim L.

事实证明,这是我最满意的答案。一键和弦就完成了。无需额外的软件。谢谢!
Jim L.

2
似乎不再适用于El Capitan。谁能确认?
Matteo'3

@Matteo仍然为我工作!
吉姆·L.

11

唯一需要“可靠地快速弹出”磁盘的警告是,如果有正在使用的文件驻留在磁盘上,它们将不会弹出。就是说,您可以强制弹出磁盘,但是如果实际上正在使用文件,那将不是理想的选择。

立即弹出所有磁盘的最简单方法是调用Applescript(也可以创建shell脚本,但是Applescript更容易变成一键式应用程序解决方案)。

因此,转到您的Applescript编辑器,粘贴以下内容:

tell application "Finder" to eject (every disk whose ejectable is true and local volume is true and free space is not equal to 0)

在脚本编辑器中输入代码

并将脚本另存为应用程序(请不要使用/tmp如图所示的文件夹)。将生成的应用程序添加到您的Dock中,然后一键式快速弹出。

选择“应用程序”作为文件格式

注意:此and free space is not equal to 0部分是为了使脚本不会弹出CD / DVD驱动器的内容。如果您还希望弹出插入的磁盘,请删除该磁盘。


我将其包装在Ruby脚本中的答案中……类似的事情又来了……
Dan Rosenstark 2015年

我已将此Applescript放在服务中执行,然后在“系统偏好设置”中创建了键盘快捷键,它可以完美运行。
JUIL

这是我最喜欢的答案,因为它使用了本机MacOS。但是,它并没有真正解决快速物理断开外部驱动器的需求。“我必须将Mac从桌面上移开一分钟”。因此,如果脚本仅弹出可弹出的驱动器,而在那时则无法弹出某些驱动器-如果在删除电缆并进入另一个房间之前警告我们,那就太好了!
tishma

7

我建议阿尔弗雷德(Alfred)。这是一个快速启动的应用程序,其中包括弹出卷的功能。您可以选择适合该命令的目标类型(网络驱动器,本地驱动器等)。

阿尔弗雷德弹出命令

触发短路时,可以选择要卸载的特定卷。或者,您可以键入ejectall(此快捷方式名称是可自定义的)。


1
注意:您需要启用这些内置阿尔弗雷德命令前往阿尔弗雷德首选项- >系统- >弹出和首选项- >系统- >“弹出所有” alfredapp.com/help/features/system
cody.codes

3

我使用启动栏自动执行此任务。它有一个命令快捷方式可以弹出所有可弹出的卷。它的速度非常快,如果您关闭了大多数索引规则,则内存占用空间和CPU使用率可能会很小。

它比这一技巧要强大得多,但它确实能很好地完成这一技巧,为此您可以使用免费版本,因为您只使用该快捷方式就可以了。




1

就个人而言,我在另一个答案中建议使用Alfred。但是这是Applescript答案,它包装在Ruby脚本中。

#!/usr/bin/env ruby
#eject-all shell script

# Dan Rosenstark 2015-11-12 15:28
# http://porkrind.org/missives/calling-applescript-from-ruby/
def osascript(script)
  system 'osascript', *script.split(/\n/).map { |line| ['-e', line] }.flatten
end

if __FILE__ == $0
  appleScript = "tell application \"Finder\" to eject (every disk whose ejectable is true and local volume is true and free space is not equal to 0)";
  osascript appleScript
  puts "I probably ejected all the disks."
end

您必须将其放入路径并使其可执行。


0

可以使用自动程序应用程序并使用“显示通知”功能来完成输出。只需将以下内容另存为应用程序,然后根据需要启动即可。

在此处输入图片说明



0

对于具有分区的磁盘,我发现以下Applescript最有效。

tell application "System Events"
  key down option
  tell application "Finder"
    with timeout of 15 seconds -- make sure we stop
      eject (every disk whose ejectable is true)
    end timeout
  end tell
  key up option
end tell

-2

在macOS Mojave上,您只需选择要弹出的两个驱动器,然后单击“ CMD + E”。这将在没有任何提示的情况下弹出两个磁盘。


1
这正是原始问题想要避免的地方!
Jim L.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.