更改目录而不输入cd?


17

是否可以通过仅在不输入任何命令的情况下键入bash来在命令行中更改目录cd

例如,有可能代替编写以下代码:

$ cd /tmp

我只想写这个:

$ /tmp

换句话说,如果我将目录称为应用程序,则希望将该目录设置为工作目录。


9
是否需要重击?zsh可以做到(autocd
Michael Mrozek

1
不,不,我需要bash解决方案=)这是主要要求,因为在冷俄罗斯的某些科研机构中,文物中只有bash作为脚本语言;)
Vladimir

通过不键入“ cd”来节省键入的数量,可能会由于没有智能的默认自动完成路径功能而被抵消。同样,这种更改目录的方法(就像更改目录一样频繁)有点令人恐惧,因为很可能意外地运行(可能是恶意的)程序(您认为是目录)。
迈克尔,

它为我在ZSH
ishidex2

Answers:


36

在bash中也有autocd选择。您可以使用shopt -s autocd以下命令启用它:

pbm@tauri ~ $ shopt -s autocd
pbm@tauri ~ $ django # Now just type this
cd ./django    <- it's done automatically
pbm@tauri ~/django $

2
bash 4中我最喜欢的新功能可供交互使用。(对于脚本来说是**。)不幸的是,它不在较早的版本中。
吉尔斯(Gilles)'所以

0

我会这样想。Ubuntu有一些通用的机制。当您运行不在系统上的命令时,有时会显示:

未找到命令“ foo”,您的意思是:...

我敢打赌,您可以劫持任何东西,然后添加检查以查看是否给定了目录。可能值得提出另一个问题,问这是什么。

编辑:找到它:https//wiki.ubuntu.com/CommandNotFoundMagic


是的,这是天真的期望-但是,bash比我们更聪明,甚至不为目录调用command_not_found_handle :(
Thomas Themel 2010年

经过一番研究,我发现了一个可以修复该问题的小补丁(mail-archive.com/bug-bash@gnu.org/msg06761.html)。不幸的是,该补丁是非官方的,因此无法与ubuntu随附的bash的普通版本一起使用。
弗拉基米尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.