xshell使用scp命令上传和下载文件
1:在 Xshell 中,虽然可以直接调用 Xftp 进行图形传输,但也支持通过 scp 命令在终端中完成文件的上传和下载(前提是远程服务器开启了 SSH 服务,且本地 Xshell 终端支持 scp 命令,通常默认支持)
2:scp 从本地上传文件到远程服务器(类型要将A服务器的文件传给B,就在A服务器执行这条命令)
命令格式:
scp [本地文件路径] [远程用户]@[远程服务器IP]:[远程目标路径]
- 示例:
- 假设:
- 本地文件路径:C:\local\test.txt(Windows 本地文件)
- 远程服务器 IP:10.10.25.199
- 远程登录用户:root
- 远程目标路径:/home/data/(远程服务器上的目录)
- 执行命令:
scp C:\local\test.txt root@10.10.25.199:/home/data/
-
路径格式:
-
Windows 本地路径可以用反斜杠 \ 或正斜杠 /(例如 C:/local/test.txt 也可行)。
-
若本地文件路径包含空格,需用引号包裹(如 scp “C:\my files\test.txt” …)
-
上传目录:加 -r 参数(递归上传):
scp -r C:\local\docs root@10.10.25.199:/home/data/ # 上传整个 docs 目录
3:使用 scp 从远程服务器下载文件到本地
命令格式:
scp [远程用户]@[远程服务器IP]:[远程文件路径] [本地保存路径]
- 示例:
- 假设:
- 远程文件路径:/home/user/data.txt(远程服务器上的文件)
- 本地保存路径:C:\download\(Windows 本地目录)
scp root@10.10.25.199:/home/user/data.txt C:\download\
- 下载目录:同样加 -r 参数:
scp -r root@10.10.25.199:/home/user/docs C:\download\ # 下载整个 docs 目录
4:特殊情况处理,非默认 SSH 端口:若远程服务器 SSH 端口不是 22,需用 -P(大写)指定端口
# 上传(端口 2222 示例)
scp -P 2222 C:\local\test.txt root@10.10.25.199:/home/data/# 下载(端口 2222 示例)
scp -P 2222 root@10.10.25.199:/home/user/data.txt C:\download\
权限问题:若提示 “Permission denied”,需确保远程目标路径有写入权限(如切换到 root 用户或修改目录权限)
