Aliases de bash - como executo um arquivo em uma pasta diferente sem perder meu local atual?

4

Eu tenho um belo alias bash na minha pasta .bashrc que me permite iniciar o Tomcat em execução sem ter que inserir o cd na pasta primeiro, por exemplo

alias startTomcat="cd ~/apache-tomcat-7.0.34/bin/ && ./startup.sh"

No entanto, quando executo startTomcat em um terminal, eu saio da pasta em que comecei e agora meu terminal está residindo em ~/apache-tomcat-7.0.34/bin/ . Este é o comportamento esperado, é claro, mas o que eu gostaria de fazer é executar o comando sem precisar de uma pasta diferente.

Posso salvar o local original e, em seguida, retornar a ele no arquivo .bashrc ou, alternativamente, executar o arquivo startup.sh sem cd ing da pasta original

Obrigado !!

    
por yochannah 03.09.2013 / 16:41

2 respostas

9

Você pode usar o caminho absoluto para startup.sh sem cd na pasta onde está localizado:

alias startTomcat="~/apache-tomcat-7.0.34/bin/startup.sh"

Ou, você pode usar cd - , que retornará ao diretório em que estava na última vez:

alias startTomcat="cd ~/apache-tomcat-7.0.34/bin/ && ./startup.sh && cd -"
    
por Radu Rădeanu 03.09.2013 / 16:45
2

A resposta de Radu é boa, mas dependendo do caso de uso, você pode usar pushd e popd , que permite salvar e restaurar diretórios. Algo como: alias startTomcat="pushd ~/apache-tomcat-7.0.34/bin; ./startup.sh; popd"

    
por Joshua Snider 24.09.2015 / 00:00