在 Unix/Linux 中维护文件结构的特定文件类型的递归副本?

新手上路,请多包涵

我需要从维护父目录的文件夹结构的目录中复制所有 *.jar 文件。如何在 UNIX/Linux 终端中执行此操作?

命令 cp -r *.jar /destination_dir 不是我要找的。

原文由 Yury Pogrebnyak 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 424
2 个回答

rsync 对于本地文件复制以及机器之间的复制很有用。这将做你想要的:

rsync -avm --include='*.jar' -f 'hide,! */' . /destination_dir

整个目录结构来自 .复制到 /destination_dir,但仅复制 .jar 文件。 -a 确保文件的所有权限和时间都不变。 -m 将省略空目录。 -v 用于详细输出。

对于试运行添加一个-n,它会告诉你它会做什么,但实际上不会复制任何东西。

原文由 Sean 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您只需要 jar 文件的目录结构,则可以使用:

 shopt -s globstar
cp **/*.jar destination_dir

如果你想要目录结构,你可以检查 cp--parents 选项。

原文由 uzsolt 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题