Can windows command line support Linux "cd -"?

7

1

In Linux we can use cd - to enter the previous directory, like:

/home/user: cd /a

/a: cd -

/home/user:

The - means the latest previous directory.

Bin Chen

Posted 2009-12-11T05:52:34.983

Reputation: 171

Answers

11

You can use pushd and popd:

c:\> pushd c:\windows
c:\Windows> popd
c:\>

danielkza

Posted 2009-12-11T05:52:34.983

Reputation: 395

you can use those on *nix systems too, and they're not limited to just "last directory". the windows versions also have some nifty sideeffects like auto-mounting network shares and such. – quack quixote – 2009-12-11T06:34:55.870

1Yes, but don't forget the popd after you pushd'd an UNC path, otherwise the temporary share will linger around :-) – Joey – 2009-12-11T07:00:33.010

2

Windows command-line by itself, no...

But, if needed / interested, you might want to try something like Cygwin or Msys, which will allow you to use a Linux-shell on Windows.

Not sure it's really what you want, but it might solve some or your problems.

(The other solution being to just... use Linux ^^ )

Pascal MARTIN

Posted 2009-12-11T05:52:34.983

Reputation: 772

1

A simple note for those using Cmder (It's really cool alternative for cmd, by the way.)

I use aliases for bash-like interface, something like this:

C:\Users\myname> cd test-dir
C:\Users\myname\test-dir> cd-
C:\Users\myname>

You can set aliases in %CMDER_ROOT%\config\user-aliases.cmd

cd=pushd . & cd $*
cd-=popd

Tura

Posted 2009-12-11T05:52:34.983

Reputation: 113

0

Maybe you would be interested in this: https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec

Of course, pushd/popd are great pair of commands, but it cannot switch back once you popped the previous out.

So I made one batch myself, which could maintain a directory history for jumping back, because I have to jump among many directories very often.

Here is the help:

cdx                 - display all saved path with leading id and name followed if any
cdx <path>          - save current path and jump to <path>
cdx :<n|name>       - jump to the Nth or named path in the saved list
cdx :               - jump to previous path
cdx <n>:<name>      - name the Nth path as <name>
cdx rm [:]<n|name>  - remove the Nth or named path from the list
cdx clear           - clear the list
cdx /help           - print out this help
cdx /?              - same as above

and examples

D:\>cdx "C:\Program Files"
C:\Program Files>cdx
[1] D:\

C:\Program Files>cdx d:\tmp
d:\tmp>cdx
[1] D:\
[2] C:\Program Files

d:\tmp>cdx t:\UsrTmp
t:\UsrTmp>cdx .
t:\UsrTmp>cdx
[1] D:\
[2] C:\Program Files
[3] d:\tmp
[4] t:\UsrTmp

t:\UsrTmp>cdx :2
C:\Program Files>cdx
[1] D:\
[2] C:\Program Files
[3] d:\tmp
[4] t:\UsrTmp

C:\Program Files>cdx rm 1
C:\Program Files>cdx
[1] C:\Program Files
[2] d:\tmp
[3] t:\UsrTmp

C:\Program Files>cdx name 3:tmp
C:\Program Files>cdx
[1] C:\Program Files
[2] d:\tmp
[3] t:\UsrTmp   <--<<< (tmp)

C:\Program Files>cdx :tmp
t:\UsrTmp>cdx :
C:\Program Files>

Programus

Posted 2009-12-11T05:52:34.983

Reputation: 11