linux读取符号链接本身的内容的方法

发布时间:2019-12-19编辑:脚本学堂
对符号链接本身充满好奇,想查看下符号链接本身存储的内容,自个儿用C语言写了一个,分享给大家。
在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,

对符号链接本身充满好奇,想查看下符号链接本身存储的内容,自个儿用C语言写了一个,分享给大家。
linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向到实际链接的文件。

复制代码 代码如下:
#include <unistd.h>
#include <stdio.h>
 
int main(void)
{
  //符号链接的路径
  char sln[] = "./test";
  char buf[1024];
  ssize_t len;
 
  if ((len = readlink(sln, buf, 1024 - 1)) != -1) {
      buf[len] = '';
  }
 
  printf("%sn", buf);
  return 0;
 }

编译执行这个程序,最终查看到符号链接本身存储内容就是链接文件的路径。
例如:/home/test链接到/home/test.txt,符号链接/home/test存储的内容就是:”/home/test.txt“。

附-作者修改后的最新文章内容:2013-1-6
#------------------------------------------
在linux下,用vim,less,cat等读取文件内容的命令来查看符号链接内容,最终都会被导向到实际链接的文件。笔者对符号链接本身充满好奇,想查看下符号链接本身存储的内容,网上搜索了很久,没有找到相关的方法,于是自个儿用C语言写了一个,分享给大家。

复制代码 代码如下:

#include
#include

int main(void)
{
    //符号链接的路径
    char sln[] = "./test";
    char buf[1024];
    ssize_t len;

    if ((len = readlink(sln, buf, 1024 - 1)) != -1) {
        buf[len] = '';
    }

    printf("%sn", buf);
    return 0;
}

在笔者电脑上编译执行这个程序,最终查看到符号链接本身存储内容就是链接文件的路径。例如:/home/test链接到/home/test.txt,符号链接/home/test存储的内容就是”/home/test.txt“。

补充说明

后来笔者在工作中,偶然发现readlink这个命令也可以读取符号链接本身的内容:

复制代码 代码如下:
readlink -f test

原文地址:http://www.01happy.com/linux-symbolic-link-contents/