我在用着
rsync -avh --progress --delete `find /path/to/files -type f -printf "%p\n" | sort -rn | head -n 5` /path/to/backup/
备份最新的5个文件。如果目标文件夹中的文件不在查找输出的 5 个文件内,则该--delete
选项应该删除它们。不幸的是,该--delete
选项不起作用。如何让它发挥作用或者如何以不同的方式做我所做的事情?
答案1
答案2
我似乎还没有足够的声誉来评论你的问题,所以我会在回答中这样做。
首先,我认为如果您发布您正在使用的文件名将会有所帮助。我也想知道子目录结构是什么/path/to/files
。我这样说是因为我想知道您find
正在运行的是否实际上正在打印最新的文件。您在这里没有对时间戳进行操作,这就是我问的原因。因此,在这一点上,您可能还想粘贴查找的输出以帮助澄清。
另外,我想知道是否-n
有sort
必要。有点跑题了,但你可以做一个sort | tail -5
.
如果没有看到有关文件内容(包括目标文件)的更多输出,我不确定这种方法rsync --delete
是否有效。这对你有用吗,还是你现在才发现这个?
或者,您可以查看 find 的 -newer、-delete 和/或 mtime 标志。