如何创建符号链接以在Mac OSx上的终端中打开目录?

时间:2014-04-03 12:06:53

标签: macos bash unix symlink

有些文件夹我整天都在播放...例如," dev"这是在我的Documents文件夹中。

我有一个明智的想法来设置符号链接,所以我只需输入" dev"和终端将进入该目录。这似乎不起作用。我的两次尝试都在下面。

任何人都知道如何做到这一点还是有更好的方法?

ln -s /Users/kelly/Documents/Dev/ dev
ln -s 'cd /Users/kelly/Documents/Dev/' dev

$ dev
bash: dev: command not found

4 个答案:

答案 0 :(得分:7)

使用符号链接,您可以使用

ln -s your/dev/directory/ dev

但您只能在您创建的目录中以及cd dev的形式使用它。

如果您只想在任何时候键入dev,请使用别名:

alias dev="cd your/dev/direcrory/"

(这应该在你的~/.bashrc

答案 1 :(得分:2)

你可以使用alias代替开发者。添加到$ {HOME} /.bashrc

 alias dev='cd /Users/kelly/Documents/Dev/' 

和bash在别名中正确解析~

 alias dev='cd ~/Documents/Dev/' 

使用别名根本不需要符号链接。

答案 2 :(得分:1)

您必须在案例中写cd dev,但最好使用bash aliases ...

写入$HOME/.bash_aliases文件:

alias dev='cd /Users/kelly/Documents/Dev/'
打开执行dev的新终端后,

会给你,你想要的......

答案 3 :(得分:1)

在$ HOME / .bashrc中,声明一个将目录映射到别名的数组。

declare -A __diraliasmap=(
  [dev]="/Users/kelly/Documents/Dev"
  [other]="/Users/kelly/Documents"
)

还定义了command_not_found_handle函数。如果已定义,则在找不到命令时,此函数将由bash运行。在该函数中,检查失败的命令是否列为目录的别名,如果是,则cd到相关目录。

command_not_found_handle()
{
  if [[ ${__diraliasmap[$1]+set} = set ]]; then
    builtin cd "${__diraliasmap[$1]}"
  else
    false
  fi
}