我有一个 8TB 硬盘来备份我的东西,并且 rsync 很容易。现在我的存储容量已超过 8TB,我又购买了一个 8TB 驱动器。
我的问题是,如何告诉 rsync 仅将不在第一个驱动器上的文件同步到第二个驱动器?
我尝试使用创建文件列表
cd /q/backup; find -type f > /oldbackup.txt
它创建一个看起来像的文件
./a/Dir/file1
./a/Dir/file2
./b/elsewhere/thing
./...
...
然后像这样使用它
rsync -rvu --delete --exclude-from=/oldbackup.txt /x/live/a /x/live/b /r/backup/
但 rsync 仍然被复制全部文件,似乎忽略了排除列表。
我该如何让它发挥作用?
另外,我的假设是否正确,即使它有效,它也会在新备份上留下很多空目录?
答案1
是的,问题(至少就我而言)似乎是两件事:
./
需要移除引线; rsync 期望以绝对方式或相对于源目录的方式指定排除。- 文字文件名需要根据正则表达式语法进行转义,以避免 rsync 尝试将它们解释为表达式。
是的,我确实得到了一堆空目录,但是删除空目录的脚本又是一次冒险。