Rsync 使用列表复制我尚未拥有的文件

Rsync 使用列表复制我尚未拥有的文件

我有两台独立的计算机,其中有相同的 MEDIA 文件夹,这个文件夹相当大。这些文件夹的结构相同,但其中一台计算机中的文件更多。

我想做的是这样的:

1)扫描计算机A上的文件夹,创建我已有的文件列表。

2)将列表复制到计算机 B,然后运行“复制不在列表中的文件”到我的外部驱动器。

可以使用 rsync 来做到这一点吗?

非常感谢,这确实是一个强大的黑客攻击。

答案1

使用外部驱动器将目录从一台计算机同步到另一台计算机,而无需复制整个目录:

  • 在目的地(就您而言是计算机 A):

    生成您已有的文件列表并将其保存到外部驱动器:

    cd /PATH/TO/MEDIA
    find -type f | cut -c2- > /PATH/TO/EXTERNAL/DRIVE/my_files
    

    您必须cd到要同步的文件夹,因此find将使用相对路径生成文件列表。

  • 在原点(就您的情况而言,是计算机 B):

    仅将您不需要的文件复制到外部驱动器:

    rsync -a --exclude-from=/PATH/TO/my_files /PATH/TO/MEDIA /PATH/TO/EXTERNAL/DRIVE
    

    确保你在 中包含尾部斜杠 ( /) /PATH/TO/MEDIA

  • 返回目的地(就您的情况而言,是计算机 A):

    将文件从外部驱动器复制到您的目录:

    rsync -a /PATH/TO/EXTERNAL/DRIVE/MEDIA/ /PATH/TO/MEDIA
    

    现在,确保你在 中包含一个尾随斜杠/PATH/TO/EXTERNAL/DRIVE/MEDIA/

更多信息:Rsync 手册页

相关内容