Я закончил тем, что установил isc-dhcp-client
, кажется, решает проблему. Спасибо за все другие подсказки, хотя!
В оболочках POSIX, после
cd -P .
$PWD
будет содержать путь без символьных ссылок.
В zsh
, $PWD:A
расширится до версии без символьных ссылок $PWD
(работы для любой переменной, не просто $PWD
).
В zsh
, setopt chase_links
, и в tcsh
, set symlinks = chase
, причина cd
удостоверяться $PWD
без символьных ссылок. Однако тот единственные работы после первого cd
. В zsh
, cd .
сделает $PWD
бесплатная символьная ссылка, но не в tcsh
где Вам было бы нужно cd "$cwd"
(который, как гарантируют, не будет работать).
К моему знанию нет такой переменной, обеспеченной средой, которая гарантирует, что ее значение является физическим путем и не связанной версией.
Учитывая это Ваши опции ограничены выбором, который Вы уже упомянули плюс следующая альтернатива.
Можно использовать команду readlink
для получения физического каталога/файла, на который указывает символьная ссылка:
демонстрационные данные:
$ ln -s /usr/bin/ack ack
$ ls -l |grep ack
lrwxrwxrwx 1 saml saml 12 Aug 15 11:48 ack -> /usr/bin/ack
физическое местоположение:
$ readlink ./ack
/usr/bin/ack
$ readlink /home/saml/ack
/usr/bin/ack
$ readlink $HOME/ack
/usr/bin/ack
Если значение Вы передаете readlink
не ссылка, она ничего не возвратит. Можно вынудить это возвратить каноническое значение при помощи -f
переключатель:
$ echo $PWD
/home/saml
$ readlink -f $PWD
/home/saml
Если Вы используете ksh93
, существует простой способ реализовать ту переменную. Просто добавьте эту функцию дисциплины или в начале Вашего сценария или в начале быть полученным им:
function PWDP.get
{
.sh.value=$(pwd -P)
}
Затем можно просто использовать переменную PWDP, как Вы ожидаете:
$ mkdir /tmp/foo
$ ln -s /tmp/foo /tmp/bar
$ cd /tmp/bar
$ echo $PWD
/tmp/bar
$ echo $PWDP
/tmp/foo
Редактирование, "немного" более сложное решение, пытающееся обработать точку Stéphane Chazelas:
function PWDP.get
{
typeset p=$(pwd -P; echo .)
.sh.value=${p%??}
}
cd .
, по определению, не изменяет каталог. – Stéphane Chazelas 15.08.2013, 23:19