防止rsync删除与给定模式匹配的目标文件

tur*_*tle 39 unix rsync

我正在使用rsync将文件从源同步到目标:

rsync -av --delete source destination
Run Code Online (Sandbox Code Playgroud)

我在目标端有一个目录,不在源端.我想阻止rsync删除此目录.是否有一个选项可以传递给rsync以防止同步时删除此目录?

kie*_*lni 47

您可以使用--exclude排除文件/目录.这将阻止同步目录被同步/删除:

rsync -avrc --delete --exclude somedir source destination
Run Code Online (Sandbox Code Playgroud)

  • 如果要仅从目录树中的一个特定位置排除`somedir`,则可以使用"/"锚定排除.这将提高性能 - rsync只需要检查一次路径!例如.`rsync -avrc --delete --exclude/path/p2/somedir source destination` (5认同)

asa*_*evs 42

正如在类似问题中提到的,这可以通过使用规则--filter选项来完成protect:

$ rsync ... --filter 'protect /remote-directory-to-keep/' ...
Run Code Online (Sandbox Code Playgroud)

不同于目前公认的答案,使用--filter是有用的,例如,如果你也想用--exclude--delete-excluded.

  • 这也适用于`--filter 'protect *.js' --filter 'protect *.js.map'` (4认同)