foxfirefey: A fox colored like flame over an ornately framed globe (Default)
foxfirefey ([personal profile] foxfirefey) wrote in [community profile] command_liners2009-06-25 11:51 am
Entry tags:

Going to your previous current working directory

I learned this one recently from a coworker:

cd -


This will allow you to switch to your previous current working directory. So:

# Go into first directory
cd ~/path/to/first/dir
# Go into second directory
cd ~/path/to/second/dir
# This takes us back to the first directory
cd -
# This takes us back to the second directory
cd -


This is really useful if you have two main directories you're currently working in.
azurelunatic: Vivid pink Alaskan wild rose. (Default)

[personal profile] azurelunatic 2009-06-25 06:56 pm (UTC)(link)
Ooo, useful!
wychwood: chess queen against a runestone (Default)

[personal profile] wychwood 2009-06-25 06:57 pm (UTC)(link)
That does sound convenient!
yvi: Dreamsheep Teal'c (Dreamsheep - Sheepl'c)

[personal profile] yvi 2009-06-25 06:58 pm (UTC)(link)
Very useful, thanks!
marnanel: (Default)

[personal profile] marnanel 2009-06-28 10:18 pm (UTC)(link)
I didn't know about that. Thank you!

Another way of switching between two directories is to use "pushd" with no arguments, which switches the top two directories in the "dirs" stack. So:

cd ~/fred
pushd ~/barney
(now in ~/barney)
pushd
(now in ~/fred)
pushd
(now in ~/barney)

Works with BSD, too.

[personal profile] babysprite 2009-06-29 06:14 am (UTC)(link)
You can also use the [up] arrow key to repeat the "cd -" command and any previous commands you have entered to the prompt.
/\__/\
(='.'=)
(")_(")
Music: Kathleen MacInnes - Gaol Ise Gaol ("My Love is She") from 'The Highland Sessions'
pne: A picture of a plush toy, halfway between a duck and a platypus, with a green body and a yellow bill and feet. (Default)

[personal profile] pne 2009-06-29 10:22 am (UTC)(link)
The Korn shell also has a useful extension to the cd command: if you give it two arguments, it'll look for the first argument in the current working directory and replace it with the second argument, then try to change directory to the result.

For example, if I'm in /home/pne/src/foo/monitor/impl and want to have a look at my co-worker's sources, I could cd pne rku and end up in /home/rku/src/foo/monitor/impl.

Or if I'm in /home/pne/proj/cool-app/src/com/example/coolapp/core/ui/buttons and want to have a look at the compiled classes, I could type cd src bin and end up at the appropriate position in the compiled-classes hierarchy (assuming a fairly typical(?) setup).

Pity that AFAIK bash hasn't adopted this syntax, especially since (again AFAIK) it doesn't conflict with any existing syntax.
Edited 2009-06-29 10:22 (UTC)
sophie: A cartoon-like representation of a girl standing on a hill, with brown hair, blue eyes, a flowery top, and blue skirt. ☀ (Default)

[personal profile] sophie 2009-07-01 07:14 pm (UTC)(link)
It doesn't, though you can still do it with the command cd ${PWD/pne/rku}, although that's admittedly not easy to remember at all.