0

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

有没有办法做到这一点?我已经尝试过,如果我只是输入它似乎可以识别别名:它会报告“别名”是一个目录。但是如果我尝试将它与另一个命令结合起来,它就会失败。

4

4 回答 4

0

使用变量,简单

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

你不需要在这里使用别名,一个变量就足够了。

于 2013-09-26T13:31:45.170 回答
0

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

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

Bash 对语法非常挑剔 - 请注意导出中缺少空格以及$何时使用它。

于 2013-09-26T13:32:05.657 回答
0

使用变量是最简单的解决方案。您可以花哨并使用数组:

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

显示值

mydir

要使用该值,您需要一些额外的标点符号

cd $(mydir)
cd `mydir`
于 2013-09-26T16:23:04.227 回答
0

听起来您想设置一个变量,而不是别名。比如, sitename=/home/jimbo/。然后,cd $sitename会把你放在/home/jimbo/.

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

仅供参考,$HOME是另一个等效于~/.

于 2013-09-26T13:33:56.513 回答