为目录设置别名

为目录设置别名

我正在尝试设置一个别名,以便我可以快速cd访问以下目录:

/home/user/asreera/Aravind/sample/src
/home/user/asreera/Aravind/sample2/src

首先我设置变量:

set use=/home/user/asreera/Aravind/

然后我设置了别名:

alias mov 'cd $use/*/src'

我的预期用途是:

mov sample

它应该转到目录/home/user/asreera/Aravind/sample/src

如果是mov sample2这样,应该转到目录/home/user/asreera/Aravind/sample2/src

当我使用此别名时出现错误cd:too many arguments

有人可以告诉我我在这方面做错了什么吗?

答案1

你应该使用:

alias mov 'cd "$use"/\!*/src'

!*在 csh/tcsh 中,别名解析为正在运行的命令的所有参数(即您在 后面放置的内容mov)。

csh在和中写入别名tcsh对于其他选项:

  • !!是整个命令行
  • !*是命令的所有参数
  • !:1是命令的第一个参数
  • !:2是命令的第二个参数
  • !$是命令的最后一个参数

每个人都必须逃脱\


有人可以告诉我我在这方面做错了什么吗?

当你执行:

mov sample

Shell 将别名解析为:

cd $use/*/src sample

然后展开变量并执行:

cd /home/user/asreera/Aravind//*/src sample

cd命令抱怨它有太多参数。

相关内容