GNU/Linux >> Tutoriales Linux >  >> Linux

Comportamiento de cd/bash en enlaces simbólicos

bash realiza un seguimiento de la ruta del directorio actual lógico, como se muestra en su aviso, e interpreta cosas como cd .. de acuerdo a eso. Esto hace que las cosas sean un poco más consistentes si solo usa esas rutas en cd (o pushd ), a costa de que sucedan cosas inesperadas si luego espera que suceda lo mismo con rutas en argumentos de comando (o comandos internos; emacs y vim tienen sus propias reglas configurables para el manejo de enlaces simbólicos, pero la mayoría de los comandos dependen del kernel para manejarlos).


Según 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 otras palabras, -L significa usar la lógica estructura, mientras que -P utiliza la realidad física estructura de directorios.

La estructura lógica es así,

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

La estructura física real cuando vas a a/b/symlink es,

a

Si desea utilizar el real .. , entonces también debes usar 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 ejemplo,

$ 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. ¿La diferencia entre enlaces simbólicos y duros?

  2. ¿Cómo copiar enlaces simbólicos?

  3. Reemplazar enlaces simbólicos con archivos

  4. Demasiados niveles de enlaces simbólicos

  5. ¿Cómo cambiar la propiedad de los enlaces simbólicos?

Una forma sencilla de enumerar enlaces simbólicos en Linux

Cómo eliminar enlaces simbólicos en Linux

Cómo crear enlaces simbólicos en Linux

¿Qué son los enlaces simbólicos en Linux? ¿Cómo crear enlaces simbólicos?

Cómo obtener una lista de enlaces simbólicos en Linux

rsync y enlaces simbólicos