Forum Linux.débutant liens symboliques

Posté par  (site web personnel) .
Étiquettes : aucune
0
23
juil.
2004
Voilà en gros ce qu'il a sur mon filesystem :
$ cd tmp/
$ mkdir loin
$ touch loin/loin
$ mkdir loin/dir
$ mkdir ici
$ cd ici
$ ln -s ../loin/dir pointeur

Voilà ce que je fais :
$ cd pointeur
$ ls ..
dir loin
$ cd ..
$ ls
pointeur

Alors normal ? Comment lister le contenu du rep ici quand je suis dans le lien symbolique pointeur ?
  • # Par exemple

    Posté par  . Évalué à 2.

    ls $(dirname $PWD)
    • [^] # Re: Par exemple

      Posté par  . Évalué à 2.

      Ou encore "ls ${PWD%/*}"

      En fait, c'est bizarre, mais c'est logique.

      Quand tu fais "ls ..", tu appelles l'exécutable "/bin/ls" avec comme argument le fichier ".." (celui qu'on voit avec "ls -a"), qui est géré par le système de fichiers et qui appartient au vrai répertoire ("tmp/loin/dir"). C'est un genre de lien hard vers le répertoire parent, donc "tmp/loin".

      Quand tu fais "cd .." par contre, c'est une commande shell que tu exécutes, et le shell traite cet argument non pas en se référant au système de fichier, mais bien comme un raccourcis pour faire "cd «le path courant moins un répertoire»". Il suit la chaine logique des répertoires et pas celle physique. En pratique, c'est le plus souvent ce qu'on veut effectivement faire, donc c'est pas plus mal. Mais si ça n'est pas ce qu'on veut, c'est désactivable (sous bash au moins : "set -P").
  • # trouvé

    Posté par  . Évalué à 2.

    $ cd -P ..

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.