1

我试图让 scp 更容易使用,所以我今天了解了 alias ,我正在这样使用它:

alias loudie-scp="scp -i keys/aws.pem $1 ec2-user@ec2-107-20-68-112.compute-1.amazonaws.com:/home/ec2-user"

$1 用于指定我要传输的文件。但是,这不起作用并给我一个错误:

scp: /home/ec2-user: not a regular file

当我手动执行此命令以 $1 传入任何文件时,不会发生这种情况。

4

3 回答 3

4

BASH 常见问题解答条目 #80:“如何创建带参数的别名?”

于 2012-12-20T05:58:01.307 回答
0

不幸的是,BASH 别名有点像查找和替换——它们对于你描述的那种任务不是很强大。我建议改用脚本文件并将其放在可执行目录中;像这样:

#!/bin/bash
scp -i keys/aws.pem $1 ec2-user@ec2-107-20-68-112.compute-1.amazonaws.com:/home/ec2-user

然后,鉴于它具有loudie-scp您可以这样称呼它的名称:

loudie-scp <parameter>
于 2012-12-20T06:01:33.653 回答
0

正如我确信 Ignacio 的链接会解释的那样,别名只不过是在文本上将别名扩展为它的值。它不带参数,您需要为此使用函数。

于 2012-12-20T06:01:47.747 回答