Quando uso ls -la symlinkName
ostat symlinkName
non viene visualizzato tutto il percorso (ad es. ../../../one/two/file.txt
)
Qual è il comando linux che rivela il percorso completo?
Quando uso ls -la symlinkName
ostat symlinkName
non viene visualizzato tutto il percorso (ad es. ../../../one/two/file.txt
)
Qual è il comando linux che rivela il percorso completo?
Risposte:
realpath
non è disponibile su tutte le versioni di Linux, ma readlink
dovrebbe esserlo.
readlink -f symlinkName
Quanto sopra dovrebbe fare il trucco.
In alternativa, se non hai installato nessuno dei precedenti, puoi fare quanto segue se hai installato python 2.6 (o successivo)
python -c 'import os.path; print(os.path.realpath("symlinkName"))'
-f
flag e poi funziona. cioèreadlink symlinkName
realpath <path to the symlink file>
dovrebbe fare il trucco.
man realpath
mostra in fondo che fa parte di "GNU coreutils", che sono abbastanza sicuro che sia sempre disponibile su Ubuntu, quindi anche se @IanStapletonCordasco dice " realpath
non è disponibile su tutte le versioni di Linux", dovrebbe almeno essere disponibile su tutti Ubuntu e versioni derivate di Ubuntu credo.
sapori unix -> ll symLinkName
OSX -> readlink symLinkName
La differenza è che il primo modo visualizzerebbe il percorso del collegamento simbolico in modo lampeggiante e il secondo modo lo farebbe semplicemente eco sulla console.
Un altro modo per vedere le informazioni è il stat
comando che mostrerà più informazioni. Comando stat ~/.ssh
sul display della mia macchina
File: ‘/home/sumon/.ssh’ -> ‘/home/sumon/ssh-keys/.ssh.personal’
Size: 34 Blocks: 0 IO Block: 4096 symbolic link
Device: 801h/2049d Inode: 25297409 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 1000/ sumon) Gid: ( 1000/ sumon)
Access: 2017-09-26 16:41:18.985423932 +0600
Modify: 2017-09-25 15:48:07.880104043 +0600
Change: 2017-09-25 15:48:07.880104043 +0600
Birth: -
Spero che questo possa aiutare qualcuno.
È possibile utilizzare awk
con una system
chiamata readlink
per ottenere l'equivalente di un ls
output con percorsi di collegamento simbolico completi. Per esempio:
ls | awk '{printf("%s ->", $1); system("readlink -f " $1)}'
Verrà visualizzato ad es
thin_repair ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_restore ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_rmap ->/home/user/workspace/boot/usr/bin/pdata_tools
thin_trim ->/home/user/workspace/boot/usr/bin/pdata_tools
touch ->/home/user/workspace/boot/usr/bin/busybox
true ->/home/user/workspace/boot/usr/bin/busybox
ls -l
. Anche questo non funziona affatto, prova a farlo su tutto nella directory (non-link) e se il tuo ls è configurato per usare i colori awk si rompe completamente. basta usarefind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'