【发布时间】:2010-04-09 16:16:46
【问题描述】:
我正在尝试为 cd !!:1 编写一个别名,它采用前一个命令的第二个单词,并更改为该名称的目录。例如,如果我输入
rails new_project
cd !!:1
第二行将进入“new_project”目录。
由于 !!:1 打字很尴尬(即使它很短,它需要三个 SHIFTed 键,在键盘的相对两侧,然后是键入两次 SHIFTed 的键的未SHIFT版本),我想只需输入类似
的内容cd-
但由于 !!:1 是在命令行上评估的,我(显然)不能这样做
alias cd-=!!:1
或者我会保存一个包含硬编码“new_project”的别名。所以我尝试了
alias cd-='!!:1'
问题在于 !!:1 从未被评估过,并且我收到一条消息,指出不存在名为 !!:1 的目录。如何创建一个别名,在我发出别名命令时评估历史替换,而不是在我定义别名时,而不是从不?
(我在 bash 和 zsh 中都尝试过,并且在两者中都得到了相同的结果。)
【问题讨论】:
标签: bash history eval alias zsh