Что означает "cd -"?


95

В сценарии оболочки bash сегодня я заметил следующую команду в конце сценария. Я знаю, что это такое, cdно не понимаю значения тире после него.

cd -

Что это значит? Google наивно усекает, -поэтому я не могу найти ответ.


@nm Нет man cdна моей машине, к вашему сведению.
Дэн Фего

Пробовал. Он вернет cd-rom, компакт-диск и т. Д.
AppleGrew

2
Вы также можете посмотреть на pushdи popdкомандах. Я не мог жить без них.
Бретт Хейл,

2
@nm - cdэто не внешний двоичный файл, это встроенная в оболочки команда. намек man bash.
jordanm

В man cdмоей системе (Gentoo) написано: и This manual page is part of the POSIX Programmer's Manualт. Д. И т. Д. Если ваша отсутствует, вы всегда можете погуглить man cd.
п. 'местоимения' м.

Ответы:


128

Если в качестве аргумента указано одиночное тире, оно будет заменено значением OLDPWD.

OLDPWDУстанавливается cdкомандой , и это предыдущий рабочий каталог.


2
Спасибо. Это было коротко и с точки зрения программиста, полно.
AppleGrew

что произойдет, если мы предоставим -как файл.
viveksinghggits

@viveksinghggits Вы можете использовать cd ./-или удалить его, вы можете избежать его с помощьюrm -fr -- -
Сандро Мунда

20

cd - возвращается в каталог, в котором вы были ранее.

Например:

marcelo @ marcelo: ~ $ cd / opt
marcelo @ marcelo: / opt $ cd / usr / bin
marcelo @ марсело: / usr / bin $ cd -
/ opt
marcelo @ marcelo: / opt $ 

Я был в / opt, перешел в / usr / bin, а затем вернулся в / opt с cd -


10

cd - возвращает вас в последний каталог.

$ cd ~/Desktop
$ pwd
/Users/daknok/Desktop
$ cd /
$ pwd
/
$ cd -
$ pwd
/Users/daknok/Desktop

6

cd - возвращает в предыдущий каталог, в котором вы были.

Скажите, что я вхожу, /usr/и я печатаюcd /var/local/someplace/else

Тогда использую, cd -вернусь к/usr


6

Из руководства

Аргумент - эквивалентен $ OLDPWD. Если используется непустое имя каталога из CDPATH, или если - является первым аргументом, и изменение каталога прошло успешно, в стандартный вывод записывается абсолютный путь к новому рабочему каталогу. Возвращаемое значение - истина, если каталог был успешно изменен; ложь иначе

Следовательно, -эквивалентно $OLDPWD, которое содержит последний каталог, в котором находилась оболочка, и устанавливается предыдущим cdвызовом.



2

cd - вернуть вас в последний каталог, в котором вы были. например

cd ~/Documents
cd ~
cd /

Теперь вы находитесь в '/', и если вы запустите 'cd -', вы окажетесь в '~'. Кстати, запустите 'cd -' еще раз, вы вернетесь в '/', но не '~ / Documents'


-1

«Текущий каталог» - это то, что означает команда терминала bash cd. Это означает «держать меня в этом каталоге»


cd означает «Смена каталога»!
Рейхане Трб,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.