我想使用 cygwin 和 rsync 备份我的 Windows 主目录:
rsync.exe -vrt --delete --exclude=AppData "/cygdrive/C/Users/user1/" "/cygdrive/D/backup/"
如您所见,我排除了AppData目录。
是否可以在以下路径中包含我的 Firefox 书签?
AppData/Roaming/Mozilla/Firefox/Profiles/*/places.sqlite
星号代表配置文件名称。不知道是因为 Firefox 在那里生成随机名称。
也许可以使用带有--exclude-from 的排除脚本?
我知道可以使用 power shell 将places.sqlite复制到另一个文件夹,然后备份这个文件夹。
但也许直接使用 rsync 是可能的。
这几乎是rsync 的副本:使用过滤器排除顶级目录但包括其一些子目录。
您需要包含
AppData
用于搜索的文件夹树,您可以找到places.sqlite
,但排除除该文件之外的所有内容。--prune-empty-dirs
停止目标被填充的目录,否则这些目录将保持为空,因此只rsync
创建它需要保存它正在复制的文件的目录。(有点奇怪,这不是默认操作,但事实并非如此。)在我的系统上,
places.sqlite
是在Profiles/*
而不是Profile/*
所以我相应地调整了我建议的命令。如您所料,--dry-run
当您对结果满意时删除。这是创建符号链接的另一个决定:将 places.sqlite 移动到 rsync 包含范围中的某个位置,例如 c:\places\*\places.sqlite
甚至对于目录,语法:
结果,rsync 将复制所有需要的数据,并跳过其他数据。
首先创建一个包含此内容的 include.txt 文件:
然后在 rsync 中使用参数 --include-from=include.txt
此解决方案不需要 --prune-empty-dirs,因此您也可以备份空目录。也不需要创建链接。