一个只打印指定目录的别名?

时间:2013-09-26 13:24:56

标签: bash alias .bash-profile

我有点意识到终端有多强大。我的问题基本上是我是否可以创建一个只打印目录名称的别名。例如,我可以轻松地创建一个别名,例如“alias sitename =”cd~ / sites / path / to / my / site /。。但我想要的是一个只打印目录名称的别名,以便我可以使用它因此,例如,如果我想要我可以说cd“alias”,或者mv from-dir“alias”。

有办法做到这一点吗?我已经尝试了,它似乎识别别名,如果我只是输入:它将报告“别名”是一个目录。但如果我尝试将它与另一个命令联系起来,那就失败了。

4 个答案:

答案 0 :(得分:0)

使用变量,只需

d=/path/to/some/directory
echo $d
cd $d
mv somedir $d/

您不需要在此处使用别名变量就足够了。

答案 1 :(得分:0)

您不想使用alias,您所追求的是环境变量

$ export SITENAME="~/sites/path/to/my/site/"
$ cd $SITENAME

Bash在语法方面非常挑剔 - 请注意导出时缺少空格,并在使用时$

答案 2 :(得分:0)

听起来你想要设置变量,而不是别名。如, sitename=/home/jimbo/。然后,cd $sitename会将您带到/home/jimbo/

如果您希望此变量具有持久性(即您不必在每次打开新会话时都设置它),那么您可以使用export命令将其设置为环境变量或将其添加到您的.bashrc文件(通常位于$HOME/.bashrc)使用以下行:sitename=/home/jimbo/

仅供参考,$HOME是另一个相当于~/的环境变量。

答案 3 :(得分:0)

使用变量是最简单的解决方案。你可能会喜欢并使用数组:

mydir() { echo "/my/directory"; }

显示值

mydir

要使用该值,您需要一些额外的惩罚

cd $(mydir)
cd `mydir`