I have a nice little bash alias in my .bashrc folder that allows me to start Tomcat running without having to cd into the folder first, e.g.

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

However when I run startTomcatin a terminal, I'm booted out of the folder I started in, and now my terminal's residing in ~/apache-tomcat-7.0.34/bin/. This is expected behaviour, of course, but what I'd like to do is run the command without winding up in a different folder.

Can I either save the original location, then return to it in my .bashrc file, or alternatively run startup.sh without cding out of the original folder?



You can use the absolute path for startup.sh without to cd in the folder where is located::

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

Or, you can use cd - which will return you to the directory where you were last time:

alias startTomcat="cd ~/apache-tomcat-7.0.34/bin/ && ./startup.sh && cd -"
  • Doh! I'd tried nearly that, but I assumed I'd have to add . to the front, and thus, it didn't run. Thanks! – StackExchange What The Heck Sep 3 '13 at 14:51

Radu's answer is good, but depending on use case you may want to use pushd and popd, which lets you save and restore directories. Something like: alias startTomcat="pushd ~/apache-tomcat-7.0.34/bin; ./startup.sh; popd"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.