如何使用目录的符号链接

如何使用目录的符号链接

我正在尝试符号链接,但遇到了几个问题。第一个是在跟随目录的符号链接后如何显示实际工作目录而不是相对于符号链接的目录(pwd例如,使用时)。第二个是如何“备份”到文件系统中的实际目录,而不是备份到符号链接。

答案1

你想要的是pwd -P

man pwdCentOS 6 开始:

   -L, --logical
          use PWD from environment, even if it contains symlinks

   -P, --physical
          avoid all symlinks

或者,来自 BSDpwd手册页,措辞稍微更有帮助:

 -L      Display the logical current working directory.

 -P      Display the physical current working directory (all symbolic
         links resolved).

我不是 100% 确定“备份”是什么意思,但假设您的意思是“将目录更改为当前目录的父目录”,您可以使用:

cd "$(dirname "$(pwd -P)")"

这相当于cd ..您当前的工作路径不包含符号链接。

或者,您可以使用cd "$(pwd -P)"转到当前逻辑目录的物理路径,然后cd ..根据需要使用。

答案2

来自man pwd我的 Ubuntu:

你的 shell 可能有自己的 pwd 版本

我用bash。简单的pwd命令给了我一个关于符号链接的路径;但/bin/pwd返回实际路径。该cd命令也是 bash 内置命令。

换句话说:这是 shell 特定的。

编辑:thrig 的评论(见下文)似乎是我在这一行下面写的所有内容的更好替代方案。

要“备份”到实际目录中,请尝试cd "$(/bin/pwd)/.."cd "$(/bin/pwd)"; cd ...我认为可以调整第二种形式来构建 的别名cd

alias cd='cd "$(/bin/pwd)"; cd'

以类似的方式你可以摆脱 bashpwd内置:

alias pwd=`/bin/pwd`

相关内容