Diciamo che hai delle directory /dir1
e /dir2/linked
, dove quest'ultima è un link simbolico alla prima.
Quando cd
a linked
e pwd
, si ottiene l'output /dir2/linked
. Se poi cd ..
, sarai messo su /dir2
. Questo comportamento è coerente con il concetto di essere dentro/dir2/linked
prima. Tuttavia, a quanto ho capito, la directory principale ( ..
) di qualsiasi directory è memorizzata nell'inode della directory (ovvero: fisicamente sul disco). Ovviamente, dato che /dir2/linked
è davvero /dir1
, la directory principale sull'inode deve essere/
A complicare ulteriormente le cose, mentre all'interno /dir2/linked
, le uscite di ls ..
e cd .. ; ls .
sono diverse! Sembra cd
onorare il percorso simbolico, mentrels
onora il percorso "fisico". Come accennato in questa domanda , c'è comunque cd -P
questo caso d'uso.
man pwd
menziona directory di lavoro "fisiche" e "logiche", ma a questo punto ho ancora alcune domande:
- Questo comportamento è sempre fornito dal
PWD
variabile d'ambiente, come indicato inman pwd
? - Perché impostazione predefinita
cd
els
comportamenti diversi, se sono entrambi comandi shell (ovvero: non programmi)? - Il programma tipico (non il comando shell) utilizza al
PWD
posto del percorso fisico? Mi rendo conto che dipende dall'implementazione, ma c'è qualche regola empirica?