【发布时间】:2016-09-26 14:42:09
【问题描述】:
我经常使用
scp -r id@remoteserver_ip:/Data_folder/
从远程超级通信服务器下载数据文件夹。
每次都必须写一样的东西是相当烦人的。
有人知道使用别名很容易使用这个命令吗?考虑到Data_folder 每次都会更改。
【问题讨论】:
我经常使用
scp -r id@remoteserver_ip:/Data_folder/
从远程超级通信服务器下载数据文件夹。
每次都必须写一样的东西是相当烦人的。
有人知道使用别名很容易使用这个命令吗?考虑到Data_folder 每次都会更改。
【问题讨论】:
您应该考虑设置 ssh 配置:
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
【讨论】:
别名不能替换单词的一部分。不过,您可以创建一个函数:
myscp () {
scp -r id@remoteserver_ip:/"$1"/
}
然后,只需致电myscp Data_folder。
另外,scp(至少在我的系统上)也需要目标文件夹。您可以在函数中将.作为next参数添加到函数中的命令中,或者使用"$2"并在运行函数时在命令行中指定。
【讨论】:
您不能设置别名来获取参数。所以你必须创建一个函数,然后你就可以给它起别名 scp
function super_scp() {
scp -r id@remoteserver_ip:${1} ${2}
}
alias scp=super_scp
然后你就可以像这样使用它了:
scp /path/to/folder /destination
【讨论】:
.bashrc 文件中,以便在登录时自动获取。
.bash_profile 获取非交互模式即可。
您可以在 $PATH 文件夹之一中创建一个 bash 文件。
#! /bin/bash
scp -r id@remoteserver_ip:"$1" "$2"
我们将脚本称为 myscp。
你可以写而不是写你写的整行
myscp /home/file.txt /home/file2.txt
【讨论】: