rsync -av --no-times --exclude='*.bak' --exclude='*.log' --delete /source/directory/ /destination/directory/
参数解析:
-a:归档模式,它相当于-rlptgoD,会递归地同步目录及文件,保持符号链接、权限、用户、组和时间戳等。虽然-a默认会同步时间戳,但我们后面会通过--no-times参数禁用时间戳同步。-v:详细模式,显示传输的文件和操作细节。可以看到哪些文件被同步。--no-times:禁用同步时间戳(-a包含-t会同步时间戳,但--no-times覆盖此行为)。--exclude='*.bak':排除.bak文件。你可以通过该选项指定不需要同步的文件类型。--exclude='*.log':排除.log文件。/source/directory/:源目录路径,尾部有/表示同步目录内容,而不是整个目录。/destination/directory/:目标目录路径。
--delete:在目标目录中删除源目录不存在的文件。
工作原理:
- 在同步过程中,
rsync会检查目标目录中的文件,如果它们不在源目录中存在,则会删除这些文件。该功能确保目标目录与源目录保持同步,没有多余的文件。
示例场景:
- 源目录
/source/directory/包含文件file1.txt和file2.txt。 - 目标目录
/destination/directory/包含文件file1.txt、file2.txt和一个额外的file3.txt。 - 执行上述命令后,
file3.txt将从目标目录中删除,因为它不在源目录中。
没有评论:
发表评论