WSの小屋

rsync 命令详解

rsync (remote sync) 是一个强大的文件同步工具,可以在本地或远程系统之间高效地同步文件和目录。它只传输变化的文件部分,大大提高了传输效率。

基本语法

bash 复制代码
rsync [选项] 源文件 目标文件

常用选项

选项 说明
-a, --archive 归档模式(相当于-rlptgoD),保留权限、时间等
-v, --verbose 显示详细传输信息
-z, --compress 传输时压缩数据
-h, --human-readable 以易读格式输出数字
-P 等同于--partial --progress,显示进度并保留部分传输的文件
--delete 删除目标中源没有的文件
-e 指定远程 shell 使用(如 ssh)
--exclude=PATTERN 排除匹配的文件
--include=PATTERN 包含匹配的文件
--max-size=SIZE 不传输大于指定大小的文件
--dry-run 模拟运行,不实际传输

使用示例

常用场景示例

  1. 本地同步
bash 复制代码
# 同步目录内容(注意尾部/)
rsync -avh /src/path/ /dest/path/

# 同步目录本身
rsync -avh /src/path /dest/
  1. 远程同步
bash 复制代码
# 本地 → 远程(SSH协议)
rsync -avz -e ssh /local/path/ user@remote:/remote/path/

# 远程 → 本地
rsync -avz -e ssh user@remote:/remote/path/ /local/path/
  1. 排除文件
bash 复制代码
# 排除特定类型/目录
rsync -av --exclude='*.log' --exclude='temp/' /src/ /dest/

# 从文件读取排除规则
rsync -av --exclude-from='exclude.list' /src/ /dest/
  1. 高级控制
bash 复制代码
# 带宽限制(100KB/s)
rsync -av --bwlimit=100 /src/ /dest/

# 自定义SSH端口
rsync -av -e 'ssh -p 2222' /src/ user@remote:/dest/

# 最大文件大小限制
rsync -av --max-size='500M' /src/ /dest/

Comments | 0条评论