GNU/Linux >> Linux Esercitazione >  >> Linux

Comportamento di cd/bash sui collegamenti simbolici

bash tiene traccia del percorso logico della directory corrente, come mostrato nel prompt, e interpreta cose come cd .. secondo quello. Questo rende le cose un po' più coerenti se usi tali percorsi solo in cd (o pushd ), a costo di cose inaspettate che accadono se ti aspetti che la stessa cosa accada con i percorsi negli argomenti dei comandi (o all'interno dei comandi; emacs e vim hanno le proprie regole configurabili per la gestione dei collegamenti simbolici, ma la maggior parte dei comandi si affida al kernel per gestirli).


Secondo 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 `..'

In altre parole, -L significa usare la logica struttura, mentre -P utilizza l'attuale fisico struttura della directory.

La struttura logica è così,

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

L'effettiva struttura fisica quando vai a a/b/symlink è,

a

Se vuoi usare il file real .. , allora devi usare anche 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 esempio,

$ 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. Come creare collegamenti rigidi e simbolici in Linux

  2. La differenza tra collegamenti simbolici e hard?

  3. Come copiare i collegamenti simbolici?

  4. Sostituisci collegamenti simbolici con file

  5. Troppi livelli di collegamenti simbolici

Un modo semplice per elencare i collegamenti simbolici in Linux

Come rimuovere i collegamenti simbolici su Linux

Come creare collegamenti simbolici su Linux

Che cosa sono i collegamenti simbolici in Linux? Come creare collegamenti simbolici?

Come ottenere un elenco di collegamenti simbolici su Linux

rsync e collegamenti simbolici