远程目录子文件夹中的 rsync 文件

远程目录子文件夹中的 rsync 文件

我有远程文件夹 (FD) 的旧副本,user@IP:/folder1/folder2/folder3/FD/其中包含子文件夹 fol1、fol2、...、

user@IP:/folder1/folder2/folder3/FD/
                                   |__fol1
                                   |__fol2
                                   |__ ... 

包含许多文件。我的本地文件夹具有相同的名称和相同的子文件夹

/localfd1/localfd2/FD/
                     |__fol1
                     |__fol2
                     |__ ...  

如何从远程子文件夹仅复制本地子文件夹中的较新文件? scp 会复制整个文件夹,但我只想要新文件。

更多分析:我拥有的远程文件夹的旧副本具有以下结构:

/localfd1/localfd2/FD/
                     |__fol1
                          |_old file1
                          |_old file2
                          |_old file3 
                     |__fol2
                          |_old file4
                          |_old file5

NEW_REMOTE 文件夹现在的形式为:

 user@IP:/folder1/folder2/folder3/FD/
                                    |__fol1
                                         |_old file3 
                                         |_new file_a
                                         |_new file_b  
                                    |__fol2
                                         |_old file5 
                                         |_new file_c 

(为了节省空间删除了远程文件夹中的一些文件+添加了新文件)。

我想从 NEW_REMOTE 文件夹(fol1 和 fol2)仅复制本地文件夹中的 NEW 文件。所以我的新本地文件夹将具有以下形式:

/localfd1/localfd2/FD/
                     |__fol1
                          |_old file1
                          |_old file2
                          |_old file3 
                          |_new file_a
                          |_new file_b 
                     |__fol2
                          |_old file4
                          |_old file5
                          |_new file_c 

答案1

您可以使用

rsync -avh --更新用户@IP:/folder1/folder2/folder3/FD/ /localfd1/localfd2/FD/
man rsync

这会强制 rsync 跳过目标上存在且修改时间比源文件更新的任何文件。 (如果现有目标文件的修改时间与源文件的修改时间相同,则如果大小不同,则会更新该文件。)

相关内容