Mac 终端 'cd' 到文件夹别名

RSM*_*RSM 9 terminal macos

我创建了一个名为“htdocs alias”的文件夹的别名,当我输入终端 cd 'htdocs alias' 或 cd htdocs\ alias 时,它不起作用?

发生这种情况的任何原因?或者有什么建议可以帮助解决这个问题?

use*_*686 13

Mac OS 别名更类似于 Windows 快捷方式而不是 Unix 符号链接;您可以双击它们,但不能cd进入它们。

这篇文章解释了如何使cd跟随 OS X 别名:

这是一个由两部分组成的过程,需要对 gcc 和 bash 有一点熟悉,但我会尽量使它变得简单。首先,您需要这个文件:getTrueName.c。该文件由 Thos Davis 创建,并在 GPLv2 下获得许可。将它保存在任何地方,然后使用以下命令编译它:

gcc -o getTrueName -framework Carbon getTrueName.c
Run Code Online (Sandbox Code Playgroud)

这将在与源相同的目录中创建“getTrueName”可执行文件。您可以将其添加到 PATH 中,或者直接将其复制到 /usr/bin 以便于访问。

有趣的是,当终端打开一个新的 shell 时, .bashrc 并没有像你想象的那样执行。相反,在登录 shell 下,会执行 .bash_profile。因此,将以下内容添加到主目录中的 .bash_profile 中。您可能需要先创建它;默认情况下它不存在。

cd() {
  if [[ -f "$1" || -L "$1" ]]; then
    path=$(getTrueName "$1")
    builtin cd "$path"
  else
    builtin cd "$@"
  fi
}
Run Code Online (Sandbox Code Playgroud)

[稍微编辑了函数-grawity]