使用alias和scp简化文件传输

近期经常需要使用 scp 命令在本地和服务器之间传输数据,每次总免不了打上一长串远程服务器路径,很是枯燥。所以就想到是否能通过bash的 alias新建一个自己的命令来特定的 scp 需求写入到 bashrc中,这样就可以每次之间敲入自己的命令,然后再将需要传到服务器的文件拖到terminal中轻松完成了。

本来是想通过如下形式实现,可是发现scp不能在 alias 命令中再从命令行直接接受参数

1
alias 2server='scp -r $1 neo@10.88.88.88:~/me'

于是曲线救国:在根目录下新建一个sh脚本文件,实现scp从命令行接收参数的功能,再将这个脚本设置为可执行文件,最后将这个脚本通过alias来添加到系统命令中。

在根目录下新建如下脚本,保存为 .copy2server.sh

1
2
3
# 注意这里的myfile一定要加双引号,将其转换为字符串的形式
myfiles=$1
scp -r "$myfiles" neo@10.88.88.88~/me

然后将其设置为可执行:

1
chmod 777 .copy2server.sh

最后使用alias添加到系统中:

1
alias 2server="/home/neo/.copy2server.sh"

未来需要向服务器传输文件的时候就可以直接轻松实现了:

1
2server “拖入的文件”