还在到处查scp命令的使用?
花5分钟读完本篇文章你会有不一样的想法
痛点
- scp命令很简单,但是大多数人要用的时候才去查
- 忘记传输端口号,又要查半天
- 如果要递归复制,又要回去查命令参数
- 即便你没有忘记命令,但是每次都写这么大一长串显得很不方便
虽然查起来也很快,但是作为一个技术人,每次都Google or 百度显得很low。如果你肯花10分钟写一个shell脚本,能带来的不止是时间上的节约,还带来精神上的快感。
先展示下最终结果吧
$ down filename # 下载文件
$ upload filename # 上传文件
非常简洁,我想只要还是个正常的技术人都应该不会忘记这种使用方法吧。
代码实现
其实有很多种实现方法,比如:
- 使用Linux的alias命令
- 使用shell脚本函数
我这里使用最难的方案吧,使用shell脚本函数传参,颇显装X。
- 在本地随便一个目录创建一个shell脚本,随便取个名(我叫myscp.sh),编写两个函数
#!/bin/bash
# download from server or upload file to server
server=zhangsan@192.168.1.1 # your server account and ip
down_path=/Users/zhangsan/Desktop/ # local download path
upload_path=download/ # server upload path
down() {
echo 'starting downlaod from server'
scp -P 22 -r $server:$1 $down_path
echo 'download finished'
}
upload() {
echo 'starting upload to server'
scp -P 22 -r $1 $server:$upload_path
echo 'upload finfished'
}
- 最重要的一步:在.bash_profile文件中添加该shell脚本的初始化命令。其实也就是每次启动一个新的shell会话时自动把该脚本里的两个函数加载到环境变量里。这样你就可以在任何地方直接使用上面定义的down和upload函数了。
行执行下面命令即可。注意:你要换成你自己放脚本所在的路径。
echo 'source ~/myscp.sh' >> ~/.bash_profile
- 完活