Como ejetar todas as partições externas rapidamente?


15

Eu tenho um disco externo com duas partições que eu continuo conectado ao meu MacBook Pro quando estou na minha mesa. (Um é para o Time Machine, o outro apenas para armazenamento extra.) Às vezes, preciso pegar meu laptop rapidamente e levá-lo para algum lugar, mas preciso mudar para um espaço em que possa ver as partições na área de trabalho, atá-las, duas -dedo clique e selecione Eject. Existe uma maneira mais rápida no Mavericks, ou eu tenho que configurar um AppleScript como este com um atalho de teclado?

Nota: Eu estou não olhando para ejetar estes só quando eu coloco o meu Mac para dormir (como explorado aqui ). Às vezes, estou em um telecon de compartilhamento de tela e preciso tirar meu Mac da minha mesa por um minuto, se é que você me entende :-).


Eu uso o Alfred.app para executar esta tarefa. Torna tão fácil quanto pressionar <kbd>cmd</kbd>+<kbd>space</kbd>e digitar eject. Altamente recomendado
wrossmck

Muitas boas respostas abaixo. Estou tendo dificuldades para escolher um como o melhor.
Jim L.

Este lugar não é grande o suficiente para nós dois, @ JimL. Acho que vou ter que ir. (desculpe, eu sei que o meu comentário é irrelevante, mas eu vi seu nome em outro post e pensei, realmente fez uma dupla tomar "Eu não escrevi isso!".
JimLohse

Respostas:


7

No OS-X Mountain-Lion, posso clicar em um dos ícones "Ejetar" com a opção (mantenha pressionada a opção e clicar no ícone ejetar), e todas as partições externas serão ejetadas.

(Atualização) Foi verificado que também funciona no OS X Mavericks e até no macOS Sierra, como eu suspeitava. Provavelmente, pode-se supor que funcione em pelo menos todas as versões intermediárias (experimente!).


Isso ainda funciona com o Mavericks.
Jim L.

Essa é a resposta mais satisfatória para mim. Um acorde de teclas rápidas e pronto. Não é necessário nenhum software extra. Obrigado!
Jim L.

2
Parece não funcionar mais no El Capitan. Alguém pode confirmar?
Matteo

@ Matteo Ainda funciona para mim!
Jim L.

11

A única advertência para "ejetar rapidamente" discos com alguma confiabilidade é que eles não serão ejetados se houver arquivos em uso que residam neles. Dito isso, você pode forçar discos de ejeção , mas isso não seria o ideal se os arquivos estivessem em uso.

A maneira mais fácil de ejetar instantaneamente todos os discos é invocando um Applescript (também pode criar um script de shell, mas o Applescript é mais facilmente transformado em uma solução de aplicativo com um clique).

Então vá ao seu Editor de Applescript, cole o seguinte:

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

Digite o código no seu editor de scripts

e salve o script como um aplicativo onde quer que você escolha (NÃO use a /tmppasta conforme ilustrado) . Adicione o aplicativo resultante ao seu Dock e você terá um Ejeção Rápida com um clique.

Selecione 'Aplicativo' como formato de arquivo

Nota: a and free space is not equal to 0parte é para que o script não ejete o conteúdo da sua unidade de CD / DVD. Remova isso se você também quiser que algum disco inserido seja ejetado.


Eu envolto isso em um script Ruby na minha resposta aqui ... mais ou menos a mesma coisa de novo ...
Dan Rosenstark

Coloquei este Applescript para executar em um serviço e, em seguida, criei um atalho de teclado nas Preferências do Sistema e ele funciona perfeitamente.
21717 juil

Esta é a minha resposta favorita porque usa material nativo do MacOS. No entanto, ele realmente não atende à necessidade de desconectar fisicamente rapidamente unidades externas. "Eu tenho que tirar meu Mac da minha mesa por um minuto". Portanto, se o script ejetar apenas unidades ejetáveis ​​e algumas não forem ejetáveis ​​naquele momento - seria ótimo se tivéssemos sido avisados ​​antes de remover o cabo e ir para outra sala!
tishma 21/06/19

7

Eu recomendaria Alfred . É um aplicativo de inicialização rápida que inclui o recurso de ejeção de volumes. Você pode selecionar que tipo de destino se qualifica para o comando (unidade de rede, local etc.).

comando efriar alfred

Ao disparar o atalho, você pode selecionar um volume específico para desmontar. Ou você pode digitar ejectall (esse nome de atalho é personalizável).


11
Nota: você precisará ativar esses comandos Alfred internos, acessando Alfred Preferences -> System -> Eject and Preferences -> System -> "Eject All" alfredapp.com/help/features/system
cody.codes

3

Eu uso a barra de ativação para automatizar esta tarefa. Possui um atalho de comando para Ejetar todos os volumes ejetáveis. É incrivelmente rápido e, se você desativar a maioria das regras de indexação, o espaço ocupado na memória e o uso da CPU podem ser pequenos.

É muito mais poderoso do que esse truque, mas ele faz muito bem e você provavelmente usaria a versão gratuita para esse fim, pois usaria apenas esse atalho.




1

Pessoalmente, estou usando Alfred, como sugerido em outra resposta. Mas aqui está a resposta do Applescript , envolvida em um script 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

você terá que colocá-lo no seu caminho e torná-lo executável.


0

Isso pode ser feito de maneira elegante com um aplicativo de automação e usando o recurso Display Notification para saída. Simplesmente salve o seguinte como um aplicativo e inicie-o como preferir.

insira a descrição da imagem aqui


0

Eu uso uma combinação de AppleScript e um aplicativo chamado Spark . O Spark está no Github para Homebrew Casks.

brew install Caskroom/cask/spark

Então eu apenas uso um AppleScript para ejetar as unidades e vinculá-lo ao atalho ⌘ E.

insira a descrição da imagem aqui


0

Para discos com partições, achei que o Applescript a seguir funciona melhor.

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

No macOS Mojave, você pode simplesmente selecionar as duas unidades que deseja ejetar e clicar em "CMD + E". Isso ejeta os dois discos sem nenhum aviso.


11
Isso é exatamente o que a pergunta original estava procurando evitar!
Jim L.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.