A 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:
- None Found