Как работает команда cd? (unix) [closed]

Может ли кто-нибудь объяснить мне, как работает команда cd - ? man cd сообщает мне, что аргумент - эквивалентен $ OLDPWD. Затем я обнаружил в сети, что $ OLDPWD - это предыдущий рабочий каталог, установленный командой cd. И когда я делаю cd - в своем unix я получаю -bash: cd: OLDPWD not set , что меня сбивает с толку.

ОБНОВЛЕНИЕ: теперь он работает, он дает мне предыдущий рабочий каталог. Думаю, я раньше не использовал команду и cd, поэтому $ OLDPWD не был установлен.

Еще один вопрос, что делает cd (введите cd и нажмите Enter)? Я бы не сказал, что ничего. Есть ли лучшее техническое объяснение?

host [~]# cd
host [~]#
6
задан 7 February 2013 в 04:10
3 ответа

OLDPWD не установлен, потому что Вы have't изменили каталог

[dave@odessa ~]$ cd -
-bash: cd: OLDPWD not set
[dave@odessa ~]$ cd /tmp
[dave@odessa tmp]$ cd -
/export/home/dave

[dave@odessa ~]$ cd /tmp
[dave@odessa tmp]$ echo $OLDPWD
/export/home/dave

cd без любых аргументов будет chdir кому: $HOME

[dave@odessa tmp]$ echo $HOME
/export/home/dave
[dave@odessa tmp]$ HOME=/ cd
[dave@odessa /]$ pwd
/
10
ответ дан 3 December 2019 в 00:03
  • 1
    @Dave Cheney: спасибо Dave, большой ответ. Совершенно прозрачный теперь... –  Radek 3 March 2010 в 12:10
type cd

говорит нам это

CD является встроенной оболочкой

man sh

говорит нам, что Вы узнали:

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

Внутренняя реализация CD в оболочке делает chdir (2)-syscall.

6
ответ дан 3 December 2019 в 00:03
  • 1
    @ptman: похож у нас есть различные результаты с различными оболочками и в cd - и в cd случаи –  Radek 3 March 2010 в 11:41
  • 2
    Хороший, я никогда не знал приблизительно type. Я привык к человеку (некоторая встроенная оболочка) предоставление мне малина. –  Dave Cheney 3 March 2010 в 11:54

cd отдельно изменения в Вашем корневом каталоге

$ cd /tmp
$ pwd
/tmp
$ cd
$ pwd
/home/username
1
ответ дан 3 December 2019 в 00:03

Теги

Похожие вопросы