Bash 别名 - 如何在不丢失当前位置的情况下运行不同文件夹中的文件?

Bash 别名 - 如何在不丢失当前位置的情况下运行不同文件夹中的文件?

我的 .bashrc 文件夹中有一个很好的小 bash 别名,它允许我启动 Tomcat 而不必先进入该文件夹,例如

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

但是,当我startTomcat在终端中运行时,我会退出启动时的文件夹,现在我的终端位于~/apache-tomcat-7.0.34/bin/。当然,这是预期的行为,但我想要做的是运行命令而不进入其他文件夹。

我也可以保存原始位置,然后返回该位置在我的 .bashrc 文件中,或者运行 startup.sh,无需cd退出原始文件夹

谢谢!!

答案1

您可以在所在的文件夹中使用startup.sh不带to的绝对路径::cd

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

或者,您可以使用cd -它将您返回到上次所在的目录:

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

答案2

Radu 的答案很好,但根据用例,您可能需要使用pushdand popd,它可以让您保存和恢复目录。类似于: alias startTomcat="pushd ~/apache-tomcat-7.0.34/bin; ./startup.sh; popd"

相关内容