English 中文(简体)
获取链接指向的路径?
原标题:
  • 时间:2009-04-10 14:43:52
  •  标签:

Is it possible to get the abolute path of the link that it is pointing to? Is there any simple system command?

I need for all of the following OS HP-UX 11i, 1123u, 1123i AIX 5.2 and 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] =   ;

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





相关问题
热门标签