如何从删除中排除 rsync 排除?

Rob*_*Rob 33 linux rsync command-line

我使用 rsync 在多台机器上同步文件,使用以下内容:

rsync -az -e "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" \
  --delete --delete-excluded --force --exclude=.git  --exclude=.bundle \
  --exclude=tmp --exclude=log/* --exclude=*.log --exclude=*.pid \
  user@host:/path/to/src/ /var/build/dest
Run Code Online (Sandbox Code Playgroud)

我想排除所有日志文件从源传输到目标,并删除目标上的所有现有文件。所以我使用--exclude=*.log--delete-excluded它的伟大工程。

我想在目标上保持某个日志文件完好无损。我想要一个--exclude-from-delete选项。

rsync 可以实现吗?

kon*_*iik 51

“保护”过滤器应该完成你想要的:

          protect, P specifies a pattern for protecting files from deletion.
Run Code Online (Sandbox Code Playgroud)

只需在相关排除之前指定以下过滤器:

--filter='P my-specific-logfile.log'
Run Code Online (Sandbox Code Playgroud)

(注意字母 P 后面的空格。)

  • 这实际上有效。 (2认同)