我试图使使用SCP变得易于使用,因此我今天了解了别名,我正在使用它:
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的价格手动执行此命令时,这不会发生。
bash FAQ输入#80:"我如何制作一个有参数的别名?"
不幸的是,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>
,因为我确定Ignacio的链接会解释,别名无非是在文本上将别名扩展到其价值。它不需要参数,您需要为此使用函数。