是否有可能获得它所指向的链接的绝对路径? 有没有简单的系统命令?
我需要以下所有操作系统 HP-UX 11i,1123u,1123i AIX 5.2和5.3 Suse Linux 10 Solaris 10
答案 0 :(得分:5)
您没有指定语言,因此我假设您需要一个可以在您正在使用的shell中运行的命令。 ls
命令具有-l
(即椭圆)选项,可以打印出有关该文件的大量信息。最后一点信息是完整路径,所以你应该能够说
ls -l file | awk '{print $NF}'
在任何符合SUS2标准的机器上(应该是所有商业UNIX)。如果文件或导致该文件的任何目录都有空格,则会出现问题。
答案 1 :(得分:2)
如果您正在寻找系统调用,则需要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';