【发布时间】:2011-06-14 00:46:39
【问题描述】:
我已经阅读了关于realpath() 的信息,但是是否有一个函数可以传递一个基本目录和一个文件名,它可以在不解析符号链接或检查文件是否实际存在的情况下给我以下结果?还是我必须使用修改后的realpath()?
"/var/", "../etc///././/passwd" => "/etc/passwd"
【问题讨论】:
-
“/dir/a_random_synlink/../hello”的结果应该是什么?请记住,如果 a_random_synlink 不指向同一目录中的目录,它可能与“/dir/hello”不同
-
@BatchyX:似乎是标准行为:
readlink -v -m '/home/user/linktoslashtmp/../'返回/home/user -
也许 readlink 会这样做,但底层操作系统不会。 ls /home/user/linktoslashtmp/../ 列出/的内容
-
@BatchyX 是正确的,执行此“规范化”将意味着前后路径不必再打开同一个文件。
-
@BatchyX 您显然有错误的工具。
ls对我的工作方式与readlink相同。你必须检查readlink的来源。
标签: c normalization symlink realpath