Может ли командная строка Windows поддерживать Linux "cd -"?

1934
Bin Chen

В Linux мы можем использовать cd -для входа в предыдущий каталог, например:

/home/user: cd /a  /a: cd -  /home/user: 

-Означает последний предыдущий каталог.

5

4 ответа на вопрос

11
danielkza

Вы можете использовать pushdи popd:

c:\> pushd c:\windows c:\Windows> popd c:\> 
Вы также можете использовать их в системах * nix, и они не ограничиваются только «последним каталогом». Версии Windows также имеют некоторые изящные побочные эффекты, такие как автоматическое монтирование сетевых ресурсов и тому подобное. quack quixote 14 лет назад 0
Да, но не забывайте `popd` после того, как вы` pushd`'d путь UNC, иначе временная папка будет задерживаться :-) Joey 14 лет назад 1
2
Pascal MARTIN

Командная строка Windows сама по себе, нет ...

Но, если нужно / интересно, вы можете попробовать что-то вроде Cygwin или Msys, что позволит вам использовать Linux-оболочку в Windows.

Не уверен, что это действительно то, что вы хотите, но это может решить некоторые или ваши проблемы.

(Другое решение состоит в том, чтобы просто ... использовать Linux ^^)

1
Tura

Простое замечание для тех, кто использует Cmder ( кстати, это действительно классная альтернатива для cmd.)

Я использую псевдонимы для bash-подобного интерфейса, что-то вроде этого:

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

Вы можете установить псевдонимы в %CMDER_ROOT%\config\user-aliases.cmd

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

Может быть, вам будет интересно: https://gist.github.com/programus/2d2738b2a746140186f7738b678bdcec

Конечно, pushd / popd - это отличная пара команд, но она не может переключиться назад, когда вы вышли из предыдущего.

Таким образом, я сам сделал один пакет, который мог поддерживать историю каталогов для перехода назад, потому что мне приходилось часто переключаться между многими каталогами.

Вот помощь:

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 

и примеры

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>