----- Original Message ---- > From: Hilco Wijbenga <hilco.wijbe...@gmail.com> > On 12 November 2010 10:36, Hilco Wijbenga <hilco.wijbe...@gmail.com> wrote: > > On 12 November 2010 09:57, Philip Webb <purs...@ca.inter.net> wrote: > >> It needs to be a Bash function, so in ~/.bashrc > >> I tried 'function cd2() { cd .. ; cd $1 ; }', > > > > Doesn't > > > > function cd2() { cd ../$1 } > > > > work? (I haven't tried it.) > > So yes, this: > > function cd2() { cd ../$1; } > > works. Something I have found useful is the pushd/popd functions in Bash. Of course, to use them the way you want to you'd have to use two step procedure:
1. Init to the directory you want: function cdInit() { pushd ${1} > /dev/null pushd ${2} > /dev/null } 2. cd away: function cd2() { popd > /dev/null pushd ${1} > /dev/null } 3. close out when you're done: function cdFini() { popd } You could probably modify the above do pull out the initial directory from a single string by - e.g. turn /my/path/parent/child into /my/path/parent - as well. You could also process the DIRSTACK variable (or use the 'dirs' command) to see if the parent directory is already on the stack too. Note: I have the redirs in there because pushd/popd by default dumps the DIRSTACK as its output. $0.02 Ben