Kullanırken ls -la symlinkName
veya stat symlinkName
kullanmadığımda tüm yol görüntüleniyor (örneğin ../../../one/two/file.txt
)
Tam yolu ortaya çıkaran linux komutu nedir?
Kullanırken ls -la symlinkName
veya stat symlinkName
kullanmadığımda tüm yol görüntüleniyor (örneğin ../../../one/two/file.txt
)
Tam yolu ortaya çıkaran linux komutu nedir?
Yanıtlar:
realpath
tüm linux çeşitlerinde mevcut değildir, ancak readlink
olmalıdır.
readlink -f symlinkName
Yukarıdakiler hile yapmalı.
Alternatif olarak, yukarıdakilerden herhangi biri kurulu değilse, python 2.6 (veya üstü) kurulu ise aşağıdakileri yapabilirsiniz.
python -c 'import os.path; print(os.path.realpath("symlinkName"))'
-f
bayrağı atlayın ve ardından bu çalışır. yanireadlink symlinkName
realpath <path to the symlink file>
hile yapmalı.
man realpath
altta bunun "GNU coreutils" in bir parçası olduğunu gösteriyor, ki her zaman Ubuntu'da geldiğinden eminim, bu yüzden @IanStapletonCordasco " realpath
tüm linux çeşitlerinde mevcut değil " dese de en azından hepsinde mevcut olmalı Ubuntu ve Ubuntu türevi tatlara inanıyorum.
unix aromaları -> ll symLinkName
OSX -> readlink symLinkName
Fark, 1. yol, sym bağlantı yolunu yanıp sönen bir şekilde görüntüler ve 2. yol, yalnızca konsolda yansıtır.
Bilgileri görmenin başka bir yolu, stat
daha fazla bilgi gösterecek komuttur. stat ~/.ssh
Makinemin ekranındaki komut
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: -
Umarım bu birine yardımcı olabilir.
Tam sembolik bağlantı yollarına sahip bir çıktının eşdeğerini elde etmek için awk
bir system
çağrı ile kullanabilirsiniz . Örneğin:readlink
ls
ls | awk '{printf("%s ->", $1); system("readlink -f " $1)}'
Örneğin gösterecek
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
. Bu da hiç çalışmaz, dizindeki her şeyde (bağlantı olmayanlar) yapmaya çalışır ve ls'niz renkleri kullanmak için yapılandırılmışsa awk tamamen kesilir. sadece kullanınfind . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'