假设我有一个符号链接链 A -> B -> C
当我输入 pwd 时,它可能会显示 A、B 或 C,具体取决于我如何到达这里。
如何显示物理目录地址(即不由任何符号链接表示的地址)?
答案1
你有没有尝试过
pwd -P
它对我有用(使用 zsh)。
$ ls -l
drwxrwxr-x 2 xxxxxxx xxxxxxx 4096 Aug 28 10:14 a
lrwxrwxrwx 1 xxxxxxx xxxxxxx 1 Aug 28 10:15 b -> a
$ cd b
$ pwd
/home/xxxxxxx/temp/b
$ pwd -P
/home/xxxxxxx/temp/a
答案2
- 您正在搜索的命令可能是
**pwd -P**
。 - 您甚至会发现很有用
readlink -f
。(man info coreutils readlink
)。 - 在某些系统中你可以找到真实路径
你不仅可以在当前目录调用
realpath .
,还可以在任何其他文件调用realpath \my\long\path\file.ext
您的shell
通常有一个内置 密码用来代替 的命令/bin/pwd
。
如果你在 shell 中写入,type pwd
它会回答你的 shell 是否为你提供了内置版本。
如需正确的帮助,您可以参考
man pwd
通常用于\bin\pwd
命令man bash
然后搜索pwd
内置版本。man <TheShellName>
对于其他 shell (zsh、csh、tcsh……)
例如man bash
你可以阅读
密码[-LP]
打印当前工作目录的绝对路径名。 如果提供了 -P 选项,则打印的路径名不包含符号链接或者启用 set 内置命令的 -o 物理选项。如果使用 -L 选项,则打印的路径名可能包含符号链接。除非在读取当前目录名称时发生错误或提供了无效选项,否则返回状态为 0。
答案3
您可以从当前目录使用 readlink(如果您的发行版可用):
$ readlink -f .
或者使用完整路径:
$ readlink -f /my-dir/with-some-link
rhel/centos 在 coreutils pkg.hth 中提供它。