Что делает cd - (cd дефис)?

14

Я набрал cd -в терминале по ошибке сегодня, и я получил сообщение об ошибке:

bash: cd: OLDPWD not set

И, к сожалению, man cdне существует.

No manual entry for cd

Что это на самом деле делает?

Дэн
источник
3
cdэто встроенный Bash. Поэтому он задокументирован man bash-builtinsвместо собственной страницы. Это верно для всех других встроенных команд Bash. Вы можете сказать, что это встроенный из-за bash: перед сообщением об ошибке.
Кири

Ответы:

17

cd - переключается между старым и новым настоящим рабочим каталогом.

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd -
bash: cd: OLDPWD не установлен
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Настольный ПК
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Рабочий стол $ pwd
/ Главная / Авинаш / Desktop
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Рабочий стол $ cd -
/ Главная / Авинаш
Авинаш @ Авинаш-Lenovo-IdeaPad Z500-: ~ $ 

Смотрите также,

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ echo $ OLDPWD

avinash @ avinash-Lenovo-IdeaPad-Z500: ~ $ cd ~ / Настольный ПК
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Desktop $ echo $ OLDPWD
/ Главная / Авинаш
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Рабочий стол $ cd d
avinash @ avinash-Lenovo-IdeaPad-Z500: ~ / Рабочий стол / d $ echo $ OLDPWD
/ Главная / Авинаш / Desktop
Авинаш @ Авинаш-Lenovo-IdeaPad Z500-: ~ / Desktop / d $ 

В $OLDPWDпеременной хранит путь предыдущего настоящего рабочего каталога.

Авинаш Радж
источник
8

Ответ Avinash Raj является полностью правильным, но что касается ручного ввода, вы можете получить справочные страницы POSIX и затем man cdработать:

sudo apt-get install manpages-posix
man cd

Бит, который говорит вам все это, это раздел OPERANDS:

-      When a hyphen is used as the operand, this shall be equivalent to the command:

       cd "$OLDPWD" && pwd

which changes to the previous working directory and then writes its name.
Оли
источник