我通常在做实际的rsync -n之前先做rsync。问题是,我如何能够自动化第二次运行来重用--dry-run生成的列表?
我的意思是,如果我运行rsync -n,我会得到一个rsync会做什么的模拟,我的想法是接受这个输出,然后处理它,然后以某种方式使rsync只让--include-from输出,所以必须只计算一次完整的列表。
如果这一点都说不通,请告诉我。
顺便说一下,我倾向于使用rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"。如果你也有一个建议,你会使用什么选择,请,让我知道。我试图复制一个外部硬盘驱动器的内容(它只包含图像,视频和文档)到另一个外部硬盘驱动器。
发布于 2016-02-10 22:02:54
当然,可以将在试运行期间生成的文件列表作为包含文件使用。但是,理想情况下,应该删除试运行输出的顶部和底部的额外行。
示例输出:
sending incremental file list
[LIST OF FILES]
sent 226 bytes received 34 bytes 520.00 bytes/sec
total size is 648,373,274 speedup is 2,493,743.36 (DRY RUN)若要删除这些行,请将rsync输出导入head和tail。然后,将处理后的输出保存到包含文件:
rsync --dry-run -avz source/ destination/ | head --lines=-3 | tail --lines=+3 > include.txt
最后,告诉rsync使用生成的包含文件(根据需要添加其他选项):
rsync --include-from=include.txt --exclude=* source/ dest/
https://unix.stackexchange.com/questions/260616
复制相似问题