Disons que vous avez des répertoires /dir1et /dir2/linked, où ce dernier est un lien symbolique vers le premier.
Lorsque vous accédez cdà linkedet 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/linkedavant. 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/linkedc'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 cdhonorer le chemin du lien symbolique, tout en honorant le chemin ls"physique". Comme mentionné dans cette question , il y a cependant cd -Pce 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
PWDvariable d'environnement, comme mentionné dansman pwd? - Pourquoi faire par défaut
cdetlsavoir 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
PWDplace du chemin physique? Je me rends compte que c'est à la mise en œuvre, mais y a-t-il une règle d'or?