Rsync使平面复制

我试图编写一个脚本,将一个目录(带有子目录)的所有文件复制到另一个目录的根目录。

所以想象一下,我有这样的文件结构:

/ pic.JPG PIC5.JPG FOLDER pic2.JPG pic3.JPG FOLDER2 pic4.JPG 

我想从该目录中的所有.JPG文件,并将其复制到另一个目标。 但是我不想要目录结构,只是文件。

这是我得到的:

 "sudo rsync -aq --include '*/' --include '*.JPG' --exclude '*\' /source/picturesRoot/ /destination/flatView/ 

但它也复制目录:(我发现这个链接在stackoverflow上: rsync:recursion同步所有文件,而忽略目录结构

我查看了解决scheme,除了*和*之外,没有看到与我的命令有太大的区别。 在path中。 我尝试过,但没有奏效。

我希望有人能帮助我,谢谢。

这个答案不能为你工作,因为你的图片不在目录的同一级别。 在rsync没有选项可以跳过创建目录结构。 在你给的链接中,这是工作的,因为用户用*显式选择源文件。

你可以用findrsync来尝试一些东西。 Find将找到文件和rsync复制它们。

这是一个解决方案:

 find /source/picturesRoot -type f -name "*.JPG" -exec rsync -a {} /destination/flatView/ \; 

要小心,如果两个文件具有相同的名称,则只有一个文件位于目标目录中。