获取它指向的链接的path?

是否有可能获得它指向的链接的绝对path? 有没有简单的系统命令?

我需要以下所有操作系统HP-UX 11i,1123u,1123i AIX 5.2和5.3 Suse Linux 10 Solaris 10

你没有指定一种语言,所以我假设你想要一个可以在你使用的任何shell中运行的命令。 ls命令有-l (这是一个ell)选项,它打印出大量关于该文件的信息。 信息的最后一点是完整的路径,所以你应该可以说

 ls -l file | awk '{print $NF}' 

在任何SUS2兼容的机器上(这应该是所有的商业UNIX)。 这将有一个问题,如果该文件或任何目录前的文件有空格。

如果你正在寻找一个系统调用,你想readlink(2) 。 这是标准化的,因此应在所有符合POSIX标准的系统上提供。

以下是其使用示例,摘自前面给出的链接:

 #include <unistd.h> char buf[1024]; ssizet_t len; if ((len = readlink("/modules/pass1", buf, sizeof(buf)-1)) != -1) buf[len] = '\0'; 

如果你正在寻找一个命令行实用程序,它看起来不像是一个标准化的,但GNU (Linux)和BSD都有readlink(1)