rsync
是一个功能强大的文件同步和传输工具,通常用于备份和镜像。它能够高效地复制和同步文件与目录。以下是 rsync
的详细用法,包括常用选项和示例。
基本语法
rsync [选项] 源 目标
常用选项
-a
:归档模式,递归复制文件并保持文件属性(等同于-rlptgoD
)。-r
:递归复制目录。-v
:详细模式,输出同步过程。-z
:压缩数据在传输过程中以节省带宽。-P
:显示进度信息,并在中断时支持续传。-e
:指定远程 shell,例如 SSH。--delete
:在目标目录中删除源目录中不存在的文件。--exclude
:排除特定文件或目录。-u
:仅复制源文件比目标文件新的情况。-n
:执行试运行,不实际传输文件,仅显示将要执行的操作。
使用示例
基本的文件复制
rsync -a /path/to/source/ /path/to/destination/
复制目录并保持属性
rsync -av /path/to/source_directory/ /path/to/destination_directory/
通过 SSH 复制文件
rsync -av -e ssh /path/to/source/ user@remote_host:/path/to/destination/
压缩传输数据
rsync -az /path/to/source/ /path/to/destination/
显示进度
rsync -avP /path/to/source/ /path/to/destination/
排除特定文件
rsync -av --exclude='*.tmp' /path/to/source/ /path/to/destination/
删除目标目录中不再存在的文件
rsync -av --delete /path/to/source/ /path/to/destination/
仅复制更新的文件
rsync -avu /path/to/source/ /path/to/destination/
试运行
rsync -avn /path/to/source/ /path/to/destination/
注意事项
- 确保你有权限读取源文件和写入目标位置。
- 使用
--delete
选项时要小心,因为它会删除目标目录中多余的文件。 rsync
默认不递归复制符号链接所指向的目录,但使用-a
选项会保留符号链接的属性。
通过这些选项和示例,你可以高效地使用 rsync
进行文件和目录的同步与备份。