[cp命令在azure devops的构建管道中的Bash脚本中不起作用

问题描述 投票:0回答:1

我需要将包含多个文件的文件夹复制到构建管道中的另一个文件夹。

我使用

cp -R -v pathToSourceFolder pathToDestFolder

cp -R -v   /Users/runner/runners/2.166.4/work/1/s/en.lproj/  /Users/runner/runners/2.166.4/work/1/s/platforms/ios/AppName/Resources

并且退出代码126出现错误:

usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory

任何人都可以提供帮助,因为我是linux / macOS use / cmd的新手?注意:管道在macOS上运行。

linux bash macos azure-devops cp
1个回答
1
投票

我需要将包含多个文件的文件夹复制到建立管道。

1。我假设/Users/runner/runners/2.166.4/work/1/s是您的构建的默认工作文件夹。因此,请避免对路径进行硬编码,而可以使用代表该路径的$(System.DefaultWorkingDirectory)。请参见Azure Devops predefined variables

2。由于您的原始目的是在Azure Devops管道中复制文件,因此您无需过多关心不同OS系统(Linux,MacOS或Windows)中的相应复制语法。

您可以使用官方的Copy Files task轻松地进行[想要的操作]。该任务需要三个输入:我们要复制的Source folderTarget folderContents,就是这样。

经典UI格式:

enter image description here

您可以通过Browse Source Folder选项选择源文件夹。然后使用**作为目录,使用$(System.DefaultWorkingDirectory)/platforms/ios/Fixi/Resources作为目标文件夹。

Yaml格式:

- task: CopyFiles@2 displayName: 'My Copy Task' inputs: SourceFolder: en.lproj TargetFolder: '$(System.DefaultWorkingDirectory)/platforms/ios/Fixi/Resources'
我们已经为您完成了后面的逻辑,以便您可以轻松地在MacOS / Linux / Windows中使用此任务。我的测试日志:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.