Answers:
realpath
并非在所有Linux版本上都可用,但readlink
应该可用。
readlink -f symlinkName
以上应该可以解决问题。
另外,如果您没有安装上述任何一种软件,那么如果您安装了python 2.6(或更高版本),则可以执行以下操作
python -c 'import os.path; print(os.path.realpath("symlinkName"))'
-f
标志,然后它可以工作。即readlink symlinkName
realpath <path to the symlink file>
应该可以。
man realpath
在底部显示它是“ GNU coreutils”的一部分,我敢肯定它总是在Ubuntu上出现,因此即使@IanStapletonCordasco表示“ realpath
并非在所有linux版本中都可用”,至少它应该在所有版本中都可用我相信Ubuntu和Ubuntu衍生风格。
查看信息的另一种方法是stat
显示更多信息的命令。stat ~/.ssh
我的机器显示屏上的命令
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: -
希望这可以帮助某人。
您可以将其awk
与system
调用readlink
一起使用,以获取ls
具有完整符号链接路径的输出的等效项。例如:
ls | awk '{printf("%s ->", $1); system("readlink -f " $1)}'
将显示例如
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
。这也根本不起作用,尝试对目录中的所有内容(非链接)执行此操作,并且如果将ls配置为使用颜色awk,则完全中断。只使用find . -maxdepth 1 -type l -ls | awk '{print $11 "\t" $12 "\t" $13}'