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
将从目标目录中删除,因为它不在源目录中。
没有评论:
发表评论