Linux教程:查找当前路径下所有target目录中的jar文件
  0SnbOly3LC5t 2023年11月02日 26 0


使用exec来实现

由于find 命令的 -path 选项不能递归地查找子目录中的文件,要在当前路径下的 target 目录及其子目录中查找 .jar 文件并进行传输,可以改用 -name 选项结合 -exec 来实现。以下是改写的示例:

find . -type d -name 'target' -exec find {} -name '*.jar' \; | xargs -I {} scp {} root@172.16.3.253:/home/docker-nginx/html/KjghMicroservice/kjghMicroservice-dev/1.0.0

在这个示例中,第一个 find 命令用于查找当前路径及其子目录中的 target 目录。然后,通过 -exec 选项执行第二个 find 命令,该命令在每个匹配的 target 目录中查找 .jar 文件。最后,结果通过管道传递给 xargs 命令,并执行 scp 命令来传输文件。

请确保在执行脚本之前,路径和凭据等参数已正确设置,并具备执行 scp 命令的权限。

使用xargs来实现

也可以使用 xargs 命令结合 find 命令来实现替代 -exec 的方法。以下是一个示例:

find . -type d -name 'target' -print0 | xargs -0 -I {} find {} -name '*.jar' | xargs -I {} scp {} root@192.168.100.101:${root_dir}

在这个示例中,第一个 find 命令用于查找当前路径及其子目录中的 target 目录,并使用 -print0 选项以空字符作为分隔符输出结果。然后,通过管道将结果传递给 xargs 命令,使用 -0 选项以空字符作为分隔符,-I {} 指定占位符,将每个 target 目录传递给下一个 find 命令。第二个 find 命令在每个 target 目录中查找 .jar 文件。最后,将结果传递给第二个 xargs 命令,并执行 scp 命令来传输文件。

请确保在执行脚本之前,路径和凭据等参数已正确设置,并具备执行 scp 命令的权限。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
0SnbOly3LC5t