Как работает команда cd? (Unix)
Может ли кто-нибудь объяснить мне, как cd -
командная работа? человек говорит мне, что An argument of - is equivalent to $OLDPWD.
Затем я обнаружил в сети, что $OLDPWD - это предыдущий рабочий каталог, заданный командой cd. И когда я делаю CD - на моем Unix я получаю -bash: cd: OLDPWD not set
что меня смущает.
ОБНОВЛЕНИЕ: это работает, теперь это дает мне предыдущий рабочий каталог. Я предполагаю, что раньше я не использовал команду cd, поэтому $OLDPWD не был установлен.
Еще один вопрос, что cd
(введите CD и нажмите Enter) делает? Я бы не сказал, что ничего. Есть ли лучшее техническое объяснение?
host [~]# cd
host [~]#
3 ответа
OLDPWD
не установлен, потому что вы не изменили каталог
[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
/
type cd
говорит нам, что
CD - это встроенная оболочка
man sh
говорит нам, что вы узнали:
Если в качестве аргумента указана одна черта, она будет заменена значением OLDPWD.
Внутренняя реализация cd в оболочке выполняет chdir (2) -syscall.
cd
сам по себе переходит в ваш домашний каталог
$ cd /tmp
$ pwd
/tmp
$ cd
$ pwd
/home/username