我正在尝试编写一个脚本,将一个目录(带有子目录)的所有文件复制到另一个目录的根目录。
想象一下我有这样的文件结构:
/
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
我查看了解决方案,除了 * 和 .在路径中。我试过了,但没用。
我希望有人能帮助我,谢谢。
最佳答案
这个答案对你不起作用,因为你的图片在目录中不在同一级别。 rsync
中没有选项可以跳过目录结构的创建。在您提供的链接中,它可以正常工作,因为用户使用 *
明确选择了源文件。
您可以尝试使用 find
和 rsync
。 Find
将找到文件并rsync
复制它们。
解决方法:
find /source/picturesRoot -type f -name "*.JPG" -exec rsync -a {} /destination/flatView/ \;
注意,如果两个文件同名,目标目录中只会有一个。
关于linux - rsync 制作平面副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24613009/