【问题标题】:How to get relative path of dir?如何获取目录的相对路径?
【发布时间】:2020-04-29 21:54:34
【问题描述】:

我正在 mini shell 中实现 pwd 内置。

如何在不使用环境变量“PWD”的情况下获得相对路径

(getenv("PWD"))

例子:

CWD = /tmp

getcwd("/tmp", buff, size)

返回绝对位置 => /private/tmp.

我怎样才能获得"/tmp" 以便打印?

【问题讨论】:

  • 我认为您可能对man page for getcwd() 感兴趣。
  • 您能解释一下/tmp/private/tmp 的关系吗?一个与另一个有符号链接吗?还是绑定挂载?还是别的什么?

标签: c unix pwd getcwd


【解决方案1】:

你不能这样做。

当 shell 初始化时,它将当前工作目录存储到 shell 的局部变量中。 Shell 从 getcwd() 获取 cwd(如果未设置环境变量“PWD”)getenv("PWD")(如果设置了“PWD”) 在初始化期间。

示例: 你在 /tmp (PWD=/tmp) (tmp = 符号链接)

案例一

zsh

密码

结果:/tmp

案例 B

env -i zsh

密码

结果:/private/tmp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-07
    • 2017-10-11
    • 2017-02-16
    • 2010-09-21
    • 2019-11-30
    相关资源
    最近更新 更多