在子目录中查找文件并将其复制到具有相同子目录的另一个目录中?

在子目录中查找文件并将其复制到具有相同子目录的另一个目录中?

这个问题很相似到这个除了我想保留文件的原始子目录。

例如如果我有

/temp/a/a.txt
/temp/a/a.jpg
/temp/a/b.txt
/temp/b/c.txt
/temp/d/d.txt
/temp/d/d.jpg
/temp/d/e.txt
/temp/f.txt

我想将所有文本文件复制到 /temp2,以便目录结构如下所示:

/temp2/a/a.txt
/temp2/a/a.jpg
/temp2/a/b.txt
/temp2/b/c.txt
/temp2/d/d.txt
/temp2/d/d.jpg
/temp2/d/e.txt
/temp2/f.txt

感谢您的帮助!!

答案1

如果您想要复制整个目录结构,那么只需cp -a /temp /temp2/temp2尚不存在或cd /temp; cp -a . /temp2目标目录已存在的情况下执行即可。(-a是 Linux 特定的选项cp;在其他系统上,您可以使用cp -Rp递归复制来保留权限。)

如果你只想根据文件名称复制某些文件,请使用同步它有复杂的包含-排除规则;我写了一个这些规则的教程回应在 Unix Stack Exchange 上询问如何做到这一点的问题

如果要通过其他条件(例如日期)匹配文件,最简单的方法是结合rsynczsh 的模式匹配规则,例如Marcel Stimberg 对上述问题的回答

答案2

如果没有更多信息,我能建议的最佳解决方案是:

cp -rp temp temp2

相关内容