rsync --files-from 或 --include-from

rsync --files-from 或 --include-from

我尝试了以下命令:

 rsync -v --include-from=/path/to/list.lst /home/user /path/to/backup

list.lst例如包含

.gnupg/

.pki/

.gnome2/keyrings/

.mozilla/firefox/*.default/bookmarkbackups/

.mozilla/firefox/*.default/bookmarks.html

.mozilla/firefox/*.default/*.db

.mozilla/firefox/*.default/*.sqlite

我在所有字符串上都遇到错误:

失败:没有该文件或目录

当我使用--files-from它时,我也遇到了错误。有人能帮我使用通配符吗?

答案1

您可以使用包含过滤器和--include-from使用 rsync 进行复杂的包含/排除

或者你可以使用 find 命令:

cd
rsync -v --files-from <(find gnupg/ .pki/ .gnome2/keyrings/ \
  .mozilla/firefox/*.default/bookmarkbackups/ \
  .mozilla/firefox/*.default/bookmarks.html .mozilla/firefox/*.default/*.db \
  .mozilla/firefox/*.default/*.sqlite) \
 ~ /path/to/backup

答案2

我认为您可能需要添加--recursive选项并使用--files-from

答案3

我认为您的文件名list.lst必须以以下形式开头+-类似:

- *.o
- foo/
+ *.exe
+ 123/456/*

答案4

确保行末/path/to/list.lst没有空格。我不知道为什么rsync对此如此敏感。

相关内容