Rsync制作平面副本

时间:2014-07-07 14:28:15

标签: linux file copy rsync flat

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

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

/
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 : Recursively sync all files while ignoring the directory structure

我看了解决方案并没有看到我的命令,除了*和。在路上。我尝试了但它没有用。

我希望有人可以帮助我,谢谢。

1 个答案:

答案 0 :(得分:6)

此答案不适合您,因为您的图片在目录中的级别不同。 rsync中没有选项可以跳过目录结构的创建。在您提供的链接中,它正常工作,因为用户使用*显式选择源文件。

您可以尝试使用findrsyncFind会找到文件并rsync复制它们。

这是一个解决方案:

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

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