我正在尝试编写一个脚本,将一个目录(带子目录)的所有文件复制到另一个目录的根目录。
所以想象一下,我有这个文件结构:
/
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
我看了解决方案并没有看到我的命令,除了*和。在路上。我尝试了但它没有用。
我希望有人可以帮助我,谢谢。
答案 0 :(得分:6)
此答案不适合您,因为您的图片在目录中的级别不同。 rsync
中没有选项可以跳过目录结构的创建。在您提供的链接中,它正常工作,因为用户使用*
显式选择源文件。
您可以尝试使用find
和rsync
。 Find
会找到文件并rsync
复制它们。
这是一个解决方案:
find /source/picturesRoot -type f -name "*.JPG" -exec rsync -a {} /destination/flatView/ \;
注意,如果两个文件具有相同的名称,则只有一个文件位于目标目录中。