Disons que vous avez des répertoires /dir1
et /dir2/linked
, où ce dernier est un lien symbolique vers le premier.
Lorsque vous accédez cd
à linked
et pwd
, vous obtenez la sortie /dir2/linked
. Si vous alorscd ..
, vous serez mis /dir2
. Ce comportement est cohérent avec le concept que vous étiez /dir2/linked
avant. Cependant, si je comprends bien, le répertoire parent ( ..
) de tout répertoire est stocké dans le répertoire inode (c'est-à-dire: physiquement sur le disque). De toute évidence, puisque /dir2/linked
c'est vraiment /dir1
, le répertoire parent sur l'inode doit être/
Pour compliquer encore les choses, à l’intérieur /dir2/linked
, les sorties ls ..
etcd .. ; ls .
sont différentes! Il semble cd
honorer le chemin du lien symbolique, tout en honorant le chemin ls
"physique". Comme mentionné dans cette question , il y a cependant cd -P
ce cas d'utilisation.
man pwd
mentionne les répertoires de travail "physiques" et "logiques", mais j'ai encore quelques questions à ce stade:
- Ce comportement est-il toujours fourni par la
PWD
variable d'environnement, comme mentionné dansman pwd
? - Pourquoi faire par défaut
cd
etls
avoir des comportements différents, si ce sont deux commandes shell (c'est-à-dire: pas des programmes)? - Le programme typique (pas la commande shell) utilise-t-il à la
PWD
place du chemin physique? Je me rends compte que c'est à la mise en œuvre, mais y a-t-il une règle d'or?