新闻资讯

如何在 Linux 上复制文件 / 文件夹到远程系统?

远程 | 2025-02-26

在 Linux 系统环境下,将文件或文件夹复制到远程系统是常见操作,这在服务器管理、数据备份与迁移等场景中尤为重要。主要有以下几种实用方法:

一、使用 scp 命令(secure copy)

scp 是基于 SSH 协议的安全文件传输工具,具备简单、安全、稳定的特性,既能把本地文件或目录传输到远程服务器,也能将远程服务器上的文件或目录传输到本地。
1、将本地文件传输到远程服务器:
(1)命令格式为:scp local_file remote_username@remote_ip:remote_folder 。其中,local_file指本地文件路径,remote_username是远程服务器上的用户名,remote_ip为远程服务器的 IP 地址,remote_folder是远程服务器上存放文件的目录。
(2)例如,要将本地的/home/user/test.txt文件传输到远程服务器192.168.1.100上的/home/remote_user/目录下,可执行命令:scp /home/user/test.txt remote_user@192.168.1.100:/home/remote_user/ 。在执行该命令时,系统会提示输入remote_user用户在远程服务器上的密码,输入正确密码后即可开始传输。
2、将本地文件夹传输到远程服务器:
若要传输整个文件夹,需加上-r递归选项,命令格式为:scp -r local_folder remote_username@remote_ip:remote_folder 。例如,将本地的/home/user/my_project文件夹传输到远程服务器192.168.1.100上的/home/remote_user/projects/目录下,命令为scp -r /home/user/my_project remote_user@192.168.1.100:/home/remote_user/projects/ 。同样,输入远程服务器密码后开始传输。
3、将远程服务器文件传输到本地:
命令格式为:scp remote_username@remote_ip:remote_file local_folder 。其中,remote_username是远程服务器上的用户名,remote_ip为远程服务器的 IP 地址,remote_file是远程服务器上的文件路径,local_folder是本地存放文件的目录。比如,将远程服务器192.168.1.100上的/home/remote_user/test.txt文件传输到本地的/home/user/目录下,命令为scp remote_user@192.168.1.100:/home/remote_user/test.txt /home/user/ 。
4、将远程服务器文件夹传输到本地:
同样使用-r选项,命令格式为:scp -r remote_username@remote_ip:remote_folder local_folder 。例如,将远程服务器192.168.1.100上的/home/remote_user/projects/文件夹传输到本地的/home/user/目录下,命令为scp -r remote_user@192.168.1.100:/home/remote_user/projects/ /home/user/ 。

二、使用 sftp(Secure File Transfer Protocol)

sftp 也是基于 SSH 协议的安全文件传输协议,它比 scp 更灵活,功能更强大,提供了远程文件管理功能,包括文件上传、下载、修改、删除等。
1、连接远程服务器:
命令为:sftp remote_username@remote_ip 。例如,连接到远程服务器192.168.1.100,用户名为remote_user,则执行sftp remote_user@192.168.1.100 ,输入密码后即可建立连接。
2、上传文件:
连接成功后,使用put命令上传文件,格式为put local_file ,其中local_file指本地文件路径。比如,上传本地的/home/user/test.txt文件,执行put /home/user/test.txt 。
3、上传文件夹:
若要上传整个文件夹,可使用-r选项递归上传,命令为put -r local_folder 。例如,上传本地的/home/user/my_project文件夹,执行put -r /home/user/my_project 。
4、下载文件:
使用get命令下载文件,格式为get remote_file ,remote_file是远程服务器上的文件路径。比如,下载远程服务器上的/home/remote_user/test.txt文件,执行get /home/remote_user/test.txt 。
5、下载文件夹:
下载文件夹同样使用-r选项,命令为get -r remote_folder 。例如,下载远程服务器上的/home/remote_user/projects/文件夹,执行get -r /home/remote_user/projects/ 。
6、其他操作:
查看远程服务器上的文件,使用ls命令;切换目录,使用cd remote_folder ,其中remote_folder是远程服务器上的目录;退出 sftp,执行exit命令。
在使用这些方法时,要确保本地和远程服务器的 SSH 服务正常运行,并且网络连接稳定。同时,注意文件权限设置,避免因权限不足导致传输失败。


拓展阅读:

1. 如何配置 SSH 免密登录来简化 scp 和 sftp 操作?
在本地生成 SSH 密钥对,将公钥添加到远程服务器的授权密钥文件中。
2. scp 和 sftp 传输大文件时速度慢怎么办?
检查网络带宽,优化网络配置,还可尝试使用-C选项(scp)或调整缓冲区大小(sftp)来提高传输速度。
3. 如何在传输文件时显示进度条?
scp 可使用-v选项显示详细信息间接查看进度,sftp 可使用-P选项(部分客户端支持)显示进度条。