Jun 242011
 

chainbreakA volte succede che si trova una sequenza di link, e così si deve iniziare a seguirli per vedere esattamente quale comando si sta per eseguire, o la directory utilizzata in quel collegamento simbolico, o è possibile utilizzare readlink.

readlink è contenuto nel pacchetto coreutils, quindi dovreste già averlo.

L’uso di base è readlink link simbolico e questo darà come output il percorso completo del file vero e proprio seguendo tutti i link simbolici.



esempio:

Diciamo che abbiamo qualcosa di simile:

-rw-r--r-- 1 linuxaria linuxaria     8 2011-06-24 21:45 one
 
drwxr-xr-x 2 linuxaria linuxaria  4096 2011-06-24 21:46 two
./two:
lrwxrwxrwx 1 linuxaria linuxaria 3 2011-06-24 21:44 link -> one
lrwxrwxrwx 1 linuxaria linuxaria 6 2011-06-24 21:46 one -> ../one
 
lrwxrwxrwx 1 linuxaria linuxaria     8 2011-06-24 21:44 three -> two/link
lrwxrwxrwx 1 linuxaria linuxaria     5 2011-06-24 21:43 four -> three

Quindi, fondamentalmente quattro è un link simbolico, che dopo molti collegamenti, arriva al file uno.

#readlink four
three
 
#readlink -f four
/tmp/one

Quindi, senza opzioni dà come output il primo link, mentre con -f si segue ogni link simbolico in ogni componente del nome dato in modo ricorsivo, tutti tranne l’ultimo componente devono esistere

Link rotto

Ora i cancello il file two/link

#rm two/link
#readlink -f four
/tmp/two/link
 
Come previsto questa volta si ferma all'ultimo link disponibile.
 
Un'altro esempio è:
#readlink -f /proc/$$/exe
/bin/zsh4

Questo vi darà esattamente il percorso completo della shell che si sta utilizzando.

Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*