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! – yochannah 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 acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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