远程拷贝命令scp
- scp就是secure copy,是一个在Linux下用来进行远程拷贝文件的命令
- 它的地址格式与ssh基本相同,需要注意点是,在指定端口时用的是大写的-P而不是小写
# 把本地当前目录下的01.py文件复制到远程家目录下的Desktop/01.py
# 注意:‘:’后面的路径如果不是绝对路径,则以用户的家目录作为参照路径
$ scp -P port 01.py user@IP:Desktop/01.py
# 把远程家目录下的Desktop/01.py 文件复制到本地当前目录下的01.py
$ scp -P port user@IP:Desktop/01.py 01.py
# 加上 -r 选项可以传送文件夹
# 把当前目录下的 demo 文件夹复制到远程家目录下的Desktop
$ scp -r demo user@IP:Desktop
# 把远程家目录下的Desktop复制到当前目录下的demo文件夹
$ scp -r user@IP:Desktop demo
选项 | 含义 |
-r | 若给出的源文件是目录文件,则scp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名 |
-p | 若远程SSH服务器的端口不是22,需要使用大写字母 -P选项指定端口 |
如用自己的电脑作为客户端,以Ubuntu的虚拟机作为服务器
1.把文件从服务器复制到客户端
虚拟机的IP地址为192.168.92.129
服务器的桌面上有01.py文件
在客户端键入
- scp -P 22 python@192.168.92.129
输入服务器的密码后,我们可以看到01.py从服务器的桌面复制到了客户端的当前文件夹(桌面)
2.把文件从客户端复制到服务器
在客户端的终端上键入:
- scp -P 22 test.txt python@192.168.92.129:Desktop
输入密码后显示传输完成,我们看看服务器的桌面
果然多了一个test.txt文件
3.传输文件夹
如把服务器的桌面文件全部复制到客户端的demo文件夹下(即把服务器的桌面文件夹复制过来即可)记住要用选项 -r
在客户端键入
- scp -P 22 -r python@192.168.92.129:Desktop demo
显示已经全部复制过来了,可以在客户端的桌面上查看。
可以看到demo文件夹的内容与服务器一模一样。
Windows下的文件传输
注意
- scp这个终端命令只能在Linux或者Unix系统下使用
- 如果在Windows系统中,可以安装Putty,使用pscp命令行工具或者安装FileZilla使用FTP协议进行文件传输
FileZilla
- 官方网站:https://filezilla-project.org/
- FileZilla在传输文件时,使用的是FTP服务而不是SSH服务,因此端口号应该设置为21