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

95

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

cd -

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

AppleGrew
источник
@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

Cfreak
источник
6

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

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

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

фоксис
источник
2

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

cd ~/Documents
cd ~
cd /

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

Цзе Чжан
источник
-1

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

Гессен
источник
cd означает «Смена каталога»!
Рейхане Трб,