Si supponga di avere le cartelle ~/a/b nella cartella home e la cartella b contenga un collegamento simbolico a ".." denominato "link simbolico". Poi ho eseguire le seguenti azioni in bash:Comportamento di cd/bash su collegamenti simbolici
[email protected]:~$ cd a/b/symlink
[email protected]:~/a/b/symlink$ pwd -P
/home/hm/a
[email protected]:~/a/b/symlink$ cd ..
[email protected]:~/a/b$ pwd -P
/home/hm/a/b
-P pwd stampa la directory di lavoro corrente, dereferenziazione tutti i link simbolici. Perché la directory di lavoro/home/hm/a/b, alla fine, e non/home/hm?
FYI, è possibile usare 'impostare physical' -o o' impostare -P' per rendere questo comportamento permanente. – Kevin
.. Devo dire che l'implementazione è probabilmente più in linea con la descrizione di @ geekosaur; Non mi aspetterei che sovrascrivere 'OLDPWD' con il tuo valore influenzerebbe effettivamente il comportamento di' cd ..'. – sarnold
Sono d'accordo sul fatto che non penso che l'OLDPWD faccia effettivamente qualcosa qui. L'ho provato con "cd" giù una catena di symlink tre livelli in profondità e poi facendo "cd .." alcune volte. Ha funzionato bene. Se fosse utilizzato OLDPWD, non funzionerebbe. OLDPWD memorizza solo una directory e non può essere utilizzata per tornare a più di una directory. Pertanto, OLDPWD non viene utilizzato. –