将单个文件从多个目录复制到新目录,每个文件有多个子目录托管

将单个文件从多个目录复制到新目录,每个文件有多个子目录托管

我正在尝试复制父目录中 960 个子目录中包含的单个特定文件。每个文件都有相同的名称,但内容各不相同。

我想维护新父目录中目录和名称的层次结构,但只想要一个特定的文件而不是每个子目录中的所有文件。

我还需要创建名为 processN 的每个子目录,其中 N 是从 0 到 959 的数字。

有什么想法吗?这让​​我很困惑,我似乎找不到一个不会花费我几个小时的好的解决方案。

答案1

rsync--include可以用一些技巧和标志来做到这一点--exclude

rsync -a -v --include="*/" --include="specific-file.txt" --exclude="*" from/ to/

这将复制所有目录和从specific-file.txtfromto同时跳过其他所有内容。该命令将保留下面的完整目录结构from并将其复制到to。您可能首先想使用开关运行此-n命令以查看结果 发生,即:

# check:
rsync -a -v -n --include="*/" --include="specific-file.txt" --exclude="*" from/ to/

# actually do:
rsync -a -v    --include="*/" --include="specific-file.txt" --exclude="*" from/ to/

相关内容