Все символические ссылки являются -односторонними. Что касается ядра, после входа в /D/S1
и запуска chdir("ls2")
вы попадаете в /D/S2
, поэтому, если вы запустите chdir("..")
, вы окажетесь в /D
.
Если вы сделаете это в оболочке, после
cd /D/S1
cd ls2
cd..
вы попадаете в /D/S1
. Причина в том, что оболочка самостоятельно отслеживает текущий каталог и запоминает символические ссылки.
Вы не можете отключить это поведение оболочки для ссылки -по ссылке -, но вы можете отключить ее при выполнении команды cd
. После запуска cd ls2
оболочка запоминает текущий каталог как /D/S1/ls2
:
$ pwd
/D/S1
$ cd ls2
$ pwd
/D/S1/ls2
$ cd..
$ pwd
/D/S1
Чтобы заставить оболочку забыть свою символическую ссылку -с учетом отслеживания текущего каталога, передайте параметр -P
в cd
. Команда pwd
также имеет параметр -P
.
$ pwd
/D/S1
$ cd ls2
$ pwd
/D/S1/ls2
$ pwd -P
/D/S2
$ cd -P..
$ pwd
/D
Вы также можете забыть о логическом отслеживании при переходе на символическую ссылку:
$ pwd
/D/S1
$ cd -P ls2
$ pwd
/D/S2
$ cd..
$ pwd
/D
Вы можете распечатать значения host
XPATH, которые не имеют атрибута hostname
:
$ xmlstarlet sel -t -v '//host[not(hostname)]' -n file.xml
cdn.cutshort.io
www.cutshort.io
blogdata.cutshort.io
cdn.cutshort.io
(//host[not(ip)]
подойдет и здесь ).