Capire quale percorso non simbolico sarebbe?


10

Su Linux, se ho fatto il cd e sono ora in una directory, c'è un modo per capire quale sia il vero percorso di quella directory se non avessi usato un link simbolico per arrivarci?

Tenere conto:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5

O:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4 4
$ cd 4/5
$ pwd 
/home/dave/tmp/4/5

C'è un modo per capire che / home / dave / tmp / 5 è davvero / home / dave / 1/2/3/4/5?

Risposte:


13

Per l'uso con cd, utilizzare pwd -P:

$ pwd
/home/dave/tmp
$ mkdir -p 1/2/3/4/5
$ ln -s 1/2/3/4/5 5
$ cd 5
$ pwd 
/home/dave/tmp/5
$ pwd -P
/home/dave/tmp/1/2/3/4/5

Per i collegamenti simbolici generici, utilizzare readlink:

$ cd ..
$ readlink 5
1/2/3/4/5

Oppure ls -l(con -dper le directory):

$ ls -ld 5
lrwxr-xr-x  1 dave  staff  9 Jul 24 10:10 5 -> 1/2/3/4/5

readlink -f file restituisce il percorso non collegato a quel file, che è quello che voglio. Grazie!
David Mackintosh,

1
eh, ho sempre usato / bin / pwd, dal momento che non può sapere come sia arrivato dove si trova, a differenza della shell pwd integrata. Ovviamente equivalente a pwd -P.
Peter Cordes,

ls -lda non funziona per collegamenti sym nascosti per qualche motivo
Casebash,

2

Si desidera readlink -f(in coreutils, installato per impostazione predefinita) o il più facile da ricordare realpath, che è necessario installare.


0

Un metodo alternativo che ho usato,

cd to the symlink
Ctrl+Shift+T #To open a new tab
pwd

Nuova scheda pwd, fornisce il collegamento simbolico. ;)


Mi dispiace, quale shell, window manager o terminale stai usando qui?
David Mackintosh,

Penso che stia parlando di gnome-terminal
prestomation il

Sì, stavo parlando del Terminal Gnome.
Lakshman Prasad,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.