当我进入某个文件夹时,是否可以创建别名?
我想要的:
我经常使用composer
(一个PHP包管理器),它在./vendor/bin
中安装二进制文件。我想直接从.
运行二进制文件。
/path/to/project
| - composer.json // dictates dependencies for the project
| - vendor // libs folder for composer, is created by composer
| | - bin // if lib has bin, composer creates this folder
| | | phpunit // binary
| | | phinx // binary
| | - somelib1 // downloaded by composer
| | - somelib2 // downloaded by composer
是否有可能让这个工作:
> cd /path/to/project
> phpunit
让phpunit
执行?
类似于"感应"composer.json
文件,动态地找到./vendor/bin
中的二进制文件,然后自动做alias="./vendor/bin/<binary-name> $@"
之类的事情?
,
我使用OS X 10.9和box in Terminal app。
您可以覆盖cd
, trap my_function DEBUG
以在每个命令上运行某些内容,或者在PS1
或PROMPT_COMMAND
中添加命令。
它们有不同的行为和警告,我不建议在这个用例中使用它们中的任何一个(在某个时候使用了它们中的每一个之后)。它们是X-Y问题的糟糕解决方案。
另一个不太可能破坏事情的选择是创建一个自定义函数来完成这两件事:
cdp() {
cd "$@" && phpunit
}