Je suis un peu confus sur le fonctionnement des liens souples dans unix. Voir l'exempleLiaisons logiques et chemins Unix
% cd /usr/local/
% ls -la
total 6
drwxr-xr-x 2 root root 512 Jan 19 15:03 .
drwxr-xr-x 41 root sys 1024 Jan 20 16:24 ..
lrwxrwxrwx 1 root root 38 Jan 19 15:03 java -> /otherDir/java/jdk1.6.0_17 **<- this is a soft link**
% cd java **<- move to the softlink**
% pwd
/usr/local/java **<- the current location, say LOCATION_A**
% cd /otherDir/java/jdk1.6.0_17/ **<-move to the location of the softlink**
% pwd
/otherDir/java/jdk1.6.0_17 **<- the new current location, say LOCATION_B**
est-ce pas un problème que même si location_a est LOCATION_B, ils ont des chemins différents?
Y at-il une commande (autre que PWD) qui donnera le véritable emplacement d'un fichier (non seulement comment l'utilisateur y aller).
Il me semble que PWD est juste la somme des cd d'un utilisateur. PAS leur emplacement actuel.
C'est l'hypothèse intégrée dans les shells qui implémentent ce comportement. Ce n'est pas nécessairement l'hypothèse intégrée dans les utilisateurs des coquilles jusqu'à ce qu'ils connaissent le comportement inattendu. Une fois acclimaté, il semble un peu naturel; Je ne suis toujours pas totalement convaincu et ce n'est pas toujours ce que je veux. IIRC, vous pouvez obtenir le comportement naïf avec «cd ./ ..». –
Désolé, il n'est pas clair pour moi ce que votre premier "That" se réfère à. Que penses-tu du comportement du noyau pour les cas '/ a/b/c/..' où 'c' est un lien symbolique vers'/f/g/h/'? Je pense que ce serait '/ a/b /', mais pas sûr. –
Non, le comportement du noyau est que '/ a/b/c/..' est '/ f/g'. Le comportement "intuitif" basé sur votre chemin d'accès est purement une invention shell, et seulement quelques coquilles. Pour autant que je m'en souvienne, 'csh' n'a pas de supercherie et se comporte donc comme le ferait le système nativement. – ephemient