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


1

这个问题非常相似 对这一个 除了我想维护文件的原始子目录。

例如,如果我有

/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

谢谢你的帮助!!

Answers:


0

如果要复制整个目录结构,那么就这样做 cp -a /temp /temp2 如果 /temp2 还不存在,或者 cd /temp; cp -a . /temp2 如果目标目录已存在。 ( -a 是特定于Linux的选项 cp;在其他系统上你可以使用 cp -Rp 用于保留权限的递归副本。)

如果您只想根据名称复制某些文件,请使用 rsync的 。它有复杂的包含 - 排除规则;我写了一篇 这些规则的教程 回应一个 在Unix Stack Exchange上询问如何执行此操作的问题

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


太好了,谢谢你的帮助!特别是链接,它们正是我所需要的!
evan

0

没有其他信息,我建议的最佳解决方案是:

cp -rp temp temp2
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.