如何将递归目录复制到平面目录

How to copy recursive directories to a flat directory

我正在尝试将当前处于多目录结构中的所有 *.psd 文件复制到一个目录中。 是否有 rsync 参数化允许它?

提出的方案不是多级递归目录,只有单级子目录。

在我目前的情况下,我有多个递归目录(最多 7 个级别)中的文件,我想在一个目录中协调这些文件。

恐怕rsync帮不了你。您可以使用 find 找到所有文件并将它们复制到目标目录,但是:

find /path/to/source/topdir -type f -name '*.psd' -exec cp {} /path/to/destination/ \;

我认为@choroba 的回答是正确的。

为了完整性(或者如果出于任何原因您需要使用 rsync 复制文件),您可以使用 rsync 做一些效率较低的事情(在这种情况下就像使用 cp ),使用查找、循环和其他并非真正必要的东西。

for file in $(find ./path/to/source/topdir -name "*psd" ); do rsync $file /path/to/destination/; done