使用别名更改scp命令

时间:2016-05-28 09:28:27

标签: bash shell alias scp

我经常使用

scp -r id@remoteserver_ip:/Data_folder/

从远程supercom服务器下载数据文件夹。

每次必须写同样的东西是相当无聊的。

有人知道使用别名易于使用此命令吗?考虑每次都会更改Data_folder

4 个答案:

答案 0 :(得分:3)

你应该考虑设置ssh config:

Host myServer
    HostName remoteserver_ip
    User id

也可以添加identity file以避免输入密码:

Host myServer
    ...
    IdentityFile ~/.ssh/my_id

现在你可以写:

scp -r myServer:/something

您可以 - 根据其他答案的建议 - 为您的~/.bashrc添加一项功能:

my_scp() {
  scp -r myServer:"$1"
}

然后致电:

my_scp /something

答案 1 :(得分:2)

别名无法替换单词的一部分。但是,您可以创建一个函数:

myscp () {
    scp -r id@remoteserver_ip:/"$1"/
}

然后,只需致电myscp Data_folder

此外,scp(至少在我的系统上)也需要目标文件夹。您可以将.添加为函数中命令的下一个参数,或者使用"$2"并在运行函数时在命令行上指定它。

答案 2 :(得分:2)

您无法设置别名来接受参数。因此,您必须创建一个函数,然后您才能将scp别名为

function super_scp() {
    scp -r id@remoteserver_ip:${1} ${2}
}

alias scp=super_scp

然后你就可以像:

一样使用它
scp /path/to/folder /destination 

答案 3 :(得分:1)

您可以在其中一个$ PATH文件夹中创建一个bash文件。

#! /bin/bash
scp -r id@remoteserver_ip:"$1" "$2"

让我们调用脚本myscp。

不是写下你写的整行,而是写

myscp /home/file.txt /home/file2.txt