如何找出特定目录位于哪个文件系统上

如何找出特定目录位于哪个文件系统上

我的系统到处都有符号链接,因此给定一个特定目录,有没有一种简单的方法可以找出该目录位于哪个挂载点?对 solaris 特别感兴趣。

答案1

你可以试试:

df dirname

它应该提供文件系统和挂载点目标符号链接。

如果您想知道符号链接本身的挂载点和文件系统:

df $(dirname /path/to/dirname)

(这是命令dirname和一个名为“dirname”的虚拟目录,很容易让人困惑。)

答案2

我知道这提供的信息比您要求的多一点。但您可以使用 realpath() 库调用制作一个简单的 C 程序。我以前这样做过,以找出特定文件的确切位置。从那里开始,确定文件系统应该是一个简单的问题。示例程序如下所示:

 /*
 * realpath - a program to find the real path
 */

 #include <limits.h>
 #include <stdlib.h>
 #include        <stdio.h>


 main(int argc, char **argv, char **envp)
 {
    void exit();
    char realx[10000];

    printf("\nORIGINAL PATH:\t%s\n",argv[1]);

    printf("Real PATH:\t%s\n",realpath(argv[1],realx));

    exit(0);

 }

相关内容