Answers:
如果将zsh用作shell,则只需输入即可cd 1.0.8 2.0.1
。
sudo apt-get install zsh
这应该在bash运行在Ubuntu 10.04: cd ${PWD/old/new}
。基本上,这将替换第一次出现old
在你当前的工作目录用new
。下面的2个示例。
ing02741@hoster:~$ cd /home/ing02741/Videos/
ing02741@hoster:~/Videos$ cd ${PWD/ing02741/koushik}
ing02741@hoster:/home/koushik/Videos$
ing02741@hoster:~/src/cdtest$ mkdir dir-v1.0.1 dir-v2.2.2 dir-v3.0.7
ing02741@hoster:~/src/cdtest$ mkdir dir-v1.0.1/ind dir-v2.2.2/ind dir-v3.0.7/ind
ing02741@hoster:~/src/cdtest$ cd dir-v1.0.1/ind/
ing02741@hoster:~/src/cdtest/dir-v1.0.1/ind$ cd ${PWD/1.0.1/2.2.2}
ing02741@hoster:~/src/cdtest/dir-v2.2.2/ind$
借用上面的sepp2k的想法,您可以制作一个像这样的函数
function mycd { cd ${PWD/$1/$2} }
然后使用类似mycd 2.0.1 1.0.8
开关的方法。
您可能会想起历史扩展。我不知道您在AIX上的Shell中有什么可用,但是在bash中执行此操作的一种方法是^2.0.1^1.0.8
。
对于具有强大命令行编辑功能的bash和zsh这样的shell,历史记录扩展不太有用。您可以使用箭头键来调用先前的命令,并使用Alt+ .插入先前命令的最后一个单词(按两次以到达之前的命令,依此类推)。
histverify
选项,shopt
则只需第二次按Enter 。
--norc
在测试时忘记了。
如果您是vi迷,则可以在shell中启用vi模式(例如bash set -o vi),然后使用vi的命令模式...
或者您可以进行疯狂的历史扩展(在zsh中进行过测试,也许也在bash中进行了测试):
$ cd /etc/application-1.0.8/options/default
cd: no such file or directory: /etc/application-1.0.8/options/default
$ !!:s/1.0.8/2.0.1/
cd /etc/application-2.0.1/options/default
cd: no such file or directory: /etc/application-2.0.1/options/default
为确保-P|-L|-
工作,请使用以下命令:
function cd () {
typeset arg=
case $1 in -|-L|-P) arg=$1 ; shift ;; esac
[ $# -gt 1 ] && {
builtin cd $arg "${PWD/$1/$2}"
} || {
builtin cd $arg "$@"
}
}