我正在这样做:
rsync ~/Desktop/files/ /media/myDrive/ -vbrh --progress
用于递归备份 ( -b
) ( -r
)。我还要求提供详细且人类可读的输出,以及进度条。
现在,如果我更改文件或将文件移动~/Desktop/files
到子目录,它会再次备份整个文件,而不仅仅是一个修改过的文件。
你能给我任何提示吗?
附:
例如,我看过很多网站,[HowToGeek][1]
我对他们使用的标志有点困惑,所以到目前为止我采用了自己的方式。
答案1
好的,所以我认为你的问题在于-b
选择。来自男人:
-b, --backup
With this option, preexisting destination files are renamed as each file is transferred or deleted. You can control where the backup file goes and what (if any) suffix
gets appended using the --backup-dir and --suffix options.
Note that if you don’t specify --backup-dir, (1) the --omit-dir-times option will be implied, and (2) if --delete is also in effect (without --delete-excluded), rsync
will add a "protect" filter-rule for the backup suffix to the end of all your existing excludes (e.g. -f "P *~"). This will prevent previously backed-up files from being
deleted. Note that if you are supplying your own filter rules, you may need to manually insert your own exclude/protect rule somewhere higher up in the list so that it
has a high enough priority to be effective (e.g., if your rules specify a trailing inclusion/exclusion of ’*’, the auto-added rule would never be reached).
每当您同步文件时,它都会再次同步它们,并且会~
在旧文件名后添加后缀(file~)。
我不知道你的最终目标是什么,但如果你只是想备份~/Desktop/files/
使用这个:
rsync -avP ~/Desktop/files/ /media/myDrive/
如果你想完全匹配(删除 ~/Desktop/files/ 中不再存在的文件 {我想这就是你要找的}):
rsync -avP --delete ~/Desktop/files/ /media/myDrive/
*-P 与 --partial --progress 相同
答案2
我可以为您提供一些有关可能令人困惑的目录路径的线索。在下面一行中:
rsync ~/Desktop/files/ /media/myDrive/ -vbrh --progress
它将同步路径 ~/Desktop/files/ 内的文件到此路径 /media/myDrive/ 内
如果您输入如下所示的路径:
rsync ~/Desktop/files /media/myDrive/ -vbrh --progress
由于您使用 -r 选项,它将同步路径 ~/Desktop/files 中的根目录本身,包括其中的文件。这意味着使用上面的命令您将在目标路径 /media/myDrive/ 上看到“文件”目录,这可能解释了为什么当您更改路径时它会重做完全同步。
答案3
我认为您通常会在目录之前放置标志,我当然这样做,但也许两种方式都是可能的。最常见的备份只需输入 -a (存档,这是所有正确标志的快捷方式,如递归、保留权限、时间戳等),这将是您所需要的。对于我的备份,我这样做
rsync -avp --delete --stats /source/ /destination/
--delete
将从目标中删除源中不再存在的文件
--stats
复制结束时会给您摘要