我有点意识到终端有多强大。我的问题基本上是我是否可以创建一个只打印目录名称的别名。例如,我可以轻松地创建一个别名,例如“alias sitename =”cd~ / sites / path / to / my / site /。。但我想要的是一个只打印目录名称的别名,以便我可以使用它因此,例如,如果我想要我可以说cd“alias”,或者mv from-dir“alias”。
有办法做到这一点吗?我已经尝试了,它似乎识别别名,如果我只是输入:它将报告“别名”是一个目录。但如果我尝试将它与另一个命令联系起来,那就失败了。
答案 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`