谷歌搜索没有显示任何结果。这就是我的意思:x
我的路径中有一个二进制文件(不是当前文件夹,但在中PATH
),并且在当前工作目录中还有一个具有相同名称的文件夹。如果输入x
,我希望二进制文件执行,但将其CD放入该文件夹。我该如何解决?
谷歌搜索没有显示任何结果。这就是我的意思:x
我的路径中有一个二进制文件(不是当前文件夹,但在中PATH
),并且在当前工作目录中还有一个具有相同名称的文件夹。如果输入x
,我希望二进制文件执行,但将其CD放入该文件夹。我该如何解决?
Answers:
那就是三个问题合一;-)
首先,您要寻找的选项是AUTO_CD。您可以通过查找轻松找到它man zshoptions
。使用寻呼机搜索功能,通常按/并输入关键字。随着n你跳到下一个事件。这将显示以下内容:
[..]
Changing Directories
AUTO_CD (-J)
If a command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory.
[..]
可以使用取消设置该选项unsetopt AUTO_CD
。
您正在使用oh-my-zsh,它被描述为
“用于管理zsh配置的社区驱动框架”包括120多个可选插件(rails,git,OSX,hub,capistrano,brew,ant,macports等),...
因此,接下来的事情就是找出如何根据框架启用/禁用选项。
该readme.textile文件指出的首选方法来启用/禁用插件会在你的.zshrc中的条目:plugins=(git osx ruby)
找出哪些插件使用AUTO_CD选项。从联机帮助页中发现,可以通过-J开关或AUTO_CD调用它。由于oh-my-zsh在github上可用,因此搜索它会打开该文件lib/theme-and-appearance.zsh
。如果您不想禁用整个插件“主题和外观”,请unsetopt AUTO_CD
在.zshrc中放入一个。不要直接修改oh-my-zsh的文件,因为如果要更新框架,所做的更改将丢失。
您的第三个问题是如何直接执行二进制文件:您必须通过路径执行二进制文件,例如,前缀./
为in ./do-something
。这是某种安全功能,不应更改。插入USB记忆棒,进行安装并用进行外观检查ls
。如果有一个名为的可执行文件ls
删除了您的主目录,则所有内容都会消失,因为这将覆盖$ PATH的顺序。
如果您有重复调用的命令,那么在.zshrc中设置别名是一种常见的解决方案。
PATH
环境变量中的二进制文件,他们希望优先于autocd。这与Shell脚本无法在未指定./
或的情况下从路径运行可执行文件无关/
。
unsetopt auto_cd
线(我也明确提到,该可执行文件是在我的道路,虽然;然而,在解释可能帮助其他用户理出头绪)。