Linux文件传输工具 scp 和 rsync 使用详解和优势对比

scp(Secure Copy)和rsync都是常用的命令行工具,用于在Linux系统中复制文件和目录。它们都可以通过SSH协议安全地传输数据,但各自有不同的特性和用途,下面我将详细介绍相关语法和使用案例


scp (Secure Copy)

scp命令用于在本地主机和远程主机之间安全地复制文件和目录。它基于SSH协议提供加密的网络传输。

基本语法:

sh 复制代码
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2

选项:

  • -P port:指定SSH端口。
  • -p:保留原始文件的修改时间、访问时间和访问权限。
  • -r:递归复制整个目录。

使用示例:

sh 复制代码
# 从本地复制文件到远程主机
scp /path/to/local/file.txt user@remote_host:/path/to/remote/directory

# 从远程主机复制文件到本地
scp user@remote_host:/path/to/remote/file.txt /path/to/local/directory

# 使用特定端口复制文件
scp -P 2222 /path/to/local/file.txt user@remote_host:/path/to/remote/directory

# 递归复制目录
scp -r /path/to/local/directory user@remote_host:/path/to/remote/directory

rsync (Remote Synchronization)

rsync命令用于同步文件和目录,它具有更多的特性,如增量备份、保留符号链接、优化数据传输等。

基本语法:

sh 复制代码
rsync [OPTION]... SRC [SRC]... [user@]DEST

选项:

  • -a:归档模式,等同于-rlptgoD(递归、保留链接、保留权限、保留时间戳、保留组、保留所有者、保留设备文件)。
  • -v:详细模式,显示传输过程。
  • -z:压缩文件数据。
  • -e:指定远程shell,如使用不同于默认的SSH端口。
  • --delete:删除目的地中存在而源中不存在的文件(谨慎使用)。

使用示例:

sh 复制代码
# 本地同步目录到远程主机
rsync -avz /path/to/local/directory/ user@remote_host:/path/to/remote/directory

# 从远程主机同步目录到本地
rsync -avz user@remote_host:/path/to/remote/directory/ /path/to/local/directory

# 使用非标准SSH端口同步
rsync -avz -e 'ssh -p 2222' /path/to/local/directory/ user@remote_host:/path/to/remote/directory

# 同步时删除目的地中多余的文件
rsync -avz --delete /path/to/local/directory/ user@remote_host:/path/to/remote/directory

请注意:

  • rsync在目录路径末尾的斜杠/有特殊的含义:如果加上斜杠,表示同步目录内的内容;如果不加斜杠,表示同步目录本身。
  • 使用--delete选项时要特别小心,以免误删除重要文件。

scp简单易用,适合快速的文件传输任务 。而rsync更适合执行复杂的同步任务,尤其是定期备份和镜像。rsync处理大量数据时更加高效,因为它只同步变化的部分。

相关推荐
sulikey4 小时前
Linux Core Dump 完全指南:从原理到实战的崩溃调试手册。什么是core dump?程序报错core dumped怎么办?
linux·服务器·操作系统·调试·coredump
Lifangyun_WD4 小时前
第一次租 GPU 服务器怎么开始?镜像、SSH、数据存储和停机前要做什么
服务器·云计算·gpu算力·gpu算力租赁
DevLoom_5 小时前
SD卡插电脑提示:驱动器中的磁盘未被格式化?恢复数据正确处理步骤
运维·服务器·电脑
STQY燊桐启元(深圳)电子科技5 小时前
医疗精密电源散热方案:相变陶瓷片保障医疗设备长效稳定低干扰
大数据·网络·人工智能
MayZork7 小时前
Windows 与 Linux 下 vcpkg 的安装部署指南
linux·运维·windows
yyuuuzz7 小时前
记一次 VPS 性能排查:共享 CPU 突发额度导致的限流
运维·服务器·人工智能
冰雪青松7 小时前
Ubuntu 运维命令大全:从入门到精通的实战参考手册
运维·服务器·ubuntu
前端 贾公子7 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
zbyyd7 小时前
Linux 进程间通信学习笔记
linux·笔记·学习
CDN3607 小时前
节点智能调度实操:解决出海区域访问快慢不均、节点拥堵、跨洋延迟高,CDN 全网择优落地方案
运维·服务器·网络