GNU/Linux >> Tutoriels Linux >  >> Linux

Comportement de cd/bash sur les liens symboliques

bash garde une trace du chemin logique du répertoire actuel, comme indiqué dans votre invite, et interprète des choses comme cd .. d'après ça. Cela rend les choses un peu plus cohérentes si vous n'utilisez ces chemins que dans cd (ou pushd ), au prix de choses inattendues si vous vous attendez à ce que la même chose se produise avec les chemins dans les arguments de commande (ou à l'intérieur des commandes ; emacs et vim ont leurs propres règles configurables pour la gestion des liens symboliques, mais la plupart des commandes dépendent du noyau pour les gérer).


Selon help cd ,

  Options:
      -L        force symbolic links to be followed: resolve symbolic
                links in DIR after processing instances of `..'
      -P        use the physical directory structure without following
                symbolic links: resolve symbolic links in DIR before
                processing instances of `..'

En d'autres termes, -L signifie utiliser la logique structure, alors que -P utilise réellement le physique structure de répertoire.

La structure logique est comme ceci,

$ tree a
a
└── b
    └── symlink -> ..

La structure physique réelle lorsque vous allez à a/b/symlink est,

a

Si vous voulez utiliser le réel .. , alors vous devez également utiliser cd -P :

          The -P option says to use the physical directory
          structure instead of following symbolic links (see
          also the -P option to the set builtin command);
          the -L option forces symbolic links to be followed.

Un exemple,

$ cd
$ cd a/b/symlink   # physical location is at a/
$ cd ..            # now is at a/b
$ cd symlink       # goes back to a/b/symlink
$ cd -P ..         # follow physical path (resolve all symlinks)
$ pwd -P           # -P is optional here to show effect of cd ..
/home/sarnold
$ 

Linux
  1. Comment créer des liens matériels et symboliques sous Linux

  2. La différence entre les liens symboliques et les liens matériels ?

  3. Comment copier des liens symboliques ?

  4. Remplacer les liens symboliques par des fichiers

  5. Trop de niveaux de liens symboliques

Un moyen simple de lister les liens symboliques sous Linux

Comment supprimer des liens symboliques sous Linux

Comment créer des liens symboliques sous Linux

Qu'est-ce que les liens symboliques sous Linux ? Comment créer des liens symboliques ?

Comment obtenir une liste de liens symboliques sous Linux

rsync et liens symboliques