comando shellmacOS para criar uma nova Janela de Terminal
Obviamente, você pode facilmente criar uma nova janela de Terminal a partir do menu ‘Shell’ ou usando o atalho de teclado ⌘N (ou ⌘T). Mas em alguns casos, pode ser mais útil usar um comando shell.
Novas janelas criadas com o atalho de teclado ou a partir do menu terá sempre o directório home ~
como o directório de trabalho actual. O que eu quero, é uma nova janela que seja padrão para o diretório de trabalho atual ou um diretório personalizado que eu possa fornecer com um argumento:
> new # opens a new terminal window at the current working directory> new ~/Desktop # opens a new terminal window at ~/Desktop
Sem sorte com AppleScript
Após meu último sucesso usando AppleScript, eu pensei que esta seria a melhor solução novamente. Infelizmente, esta peça em particular do dicionário AppleScript está quebrada. Os comandos make new window
ou make new tab
falham com erros e eu tentei várias combinações.
Após alguma pesquisa na web, parece que isto está quebrado há muito tempo. Preenchi um problema no Feedback Assistant.
Você pode criar uma nova janela do Terminal com AppleScript usando o comando do script
no dicionário do Terminal. (Não confundir com do shell script
.) Então este AppleScript, faz mais ou menos o que eu quero, mas parece complicado.
tell application "Terminal" do script "cd ~/Desktop"end tell
Se você souber de uma maneira melhor de criar uma nova janela de Terminal ou, melhor ainda, uma aba de Terminal com AppleScript, então por favor me avise. (Sem soluções de UI Scripting – essas têm seus próprios problemas.) Tenho algumas outras idéias onde isso pode ser útil.
Entrar o comando open
Durante essas buscas na web, também encontrei sugestões para usar o comando open
, em vez disso:
> open -a Terminal ~/Documents
Abrir uma nova janela de Terminal com ~/Documents
como diretório de trabalho. Isto já está muito próximo do que eu queria.
Criei esta função no meu ficheiro de configuração do shell (bash, zsh):
# creates a new terminal windowfunction new() { if ]; then open -a "Terminal" "$PWD" else open -a "Terminal" "$@" fi}
Com isto, posso agora digitar
> new Projects/desktoppr
e obter uma nova janela de Terminal lá. Isto é muito útil quando combinado com a variável de substituição do histórico !$
(último argumento do comando anterior):
> mkdir Projects/great_new_tool> new !$
E um efeito secundário inesperado, mas útil, é que a função new
também pode abrir uma sessão ssh numa nova janela:
> new ssh://[email protected]
E espera que também ache isto útil!