在“查找”中复制引用文件的功能是什么-execbash-c";。詹金斯支持;复制参考文件';{}'&引用;\;做
有人能解释一下下面的命令是做什么的吗在“查找”中复制引用文件的功能是什么-execbash-c";。詹金斯支持;复制参考文件';{}'&引用;\;做,bash,shell,jenkins,Bash,Shell,Jenkins,有人能解释一下下面的命令是做什么的吗 find /usr/share/jenkins/ref/ -type f -exec bash -c ". /usr/local/bin/jenkins-support; copy_reference_file '{}'" \; 在上面的示例中,copy\u reference\u file引用什么?此递归查找执行以下操作: 从/usr/share/jenkins/ref/及其所有子目录开始: 对于找到的每个常规文件(即不是符号链接、目录、设备等的文件)
find /usr/share/jenkins/ref/ -type f -exec bash -c ". /usr/local/bin/jenkins-support; copy_reference_file '{}'" \;
在上面的示例中,
copy\u reference\u file
引用什么?此递归查找执行以下操作:
- 从
及其所有子目录开始:/usr/share/jenkins/ref/
- 对于找到的每个常规文件(即不是符号链接、目录、设备等的文件):
- 获取文件
后(设置环境变量或以其他方式修改执行环境):/usr/local/bin/jenkins support
- 对找到的每个文件运行命令
copy\u reference\u file
编辑:作为参考,我已将/usr/local/bin/jenkins support的相关内容粘贴到。看起来它主要围绕Jenkins组件,比如插件。这一行似乎来自。它只是一个程序名。它将以找到的文件名作为参数来执行。我猜它是软件的一部分。它很可能是在
jenkins support
script.BTW中定义的一个函数,以不同的方式编写它将更高效、更安全(针对具有恶意名称的文件):-exec bash-c'/usr/local/bin/jenkins支持;精氨酸;复制参考文件“$arg”;done'{}+
OP:因为这几乎可以肯定是您正在排除故障的一个已损坏的用例,所以问题的内容应该有一个集合([您正在尝试做什么],[您期望看到什么],[您实际得到什么])来帮助您的同胞。如果这个命令不太可能是可执行的二进制文件,但是在jenkins-support
脚本中定义了一个shell函数——这就是为什么我将您的答案修改为更一般的,而不是潜在地暗示jenkins-support
只是在修改环境变量。我一直想在詹金斯的资料中找到一个裁判,但在我的电话里不太顺利。顺便说一句,OP的原始代码实际上有一个主要的安全漏洞——请看我对这个问题的评论。对其功能的完整解释可能会涵盖该bug,或者至少指定一个修复(并说明它正在解释修复版本的功能)。:)我在其他地方看到过这条线;我敢打赌这是詹金斯的消息来源(在这种情况下,这将是对詹金斯的公关)。OP很可能遇到了DockerJenkins众多交互问题中的一个,并且正在尝试对他的自动构建进行故障排除。我一直有一种偏见(可以追溯到早期的Tomcat),即Java开发人员作为一个整体不能编写安全的shell脚本来拯救他们的生命(我在上一份工作中审计了一个相当流行的基于SSH的开源编排工具中的一系列安全漏洞,这些漏洞得到了加强——代码是显式编写的,用于转义字符串以确保安全地包含在shell命令行中)。如果这确实来自Jenkins upstream,那么这一特殊遭遇无助于消除它。