嗨,我正在尝试通过 jenkins 自动化 android 构建系统。在这里,我尝试将图像文件从一个目录复制到另一个目录,但总是出现“没有这样的文件或目录”
SRC=/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable-hdpi/logo_splash.png
DEST=/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png
cp -rf $SRC $DEST
错误日志:cp:目标“build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png”不是目录
答案1
单词分割
通过将参数字符串和扩展包装在“引号”。注意到以下示例的颜色编码有何不同吗?它揭示了单词分组和分离方式之间的差异。
你可能需要也可能不需要\ 逃脱\文件路径的空白不再是了。
引
src="/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable-hdpi/logo_splash.png"
dest="/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png"
cp -rf "$src" "$dest"
未引用
SRC=/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable-hdpi/logo_splash.png
DEST=/var/lib/jenkins/jobs/Android\ Gradle\ test\ build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png
cp -rf $SRC $DEST
答案2
我不明白您尝试为这两个变量设置什么,但结果命令将扩展为:
cp -rf /var/lib/jenkins/jobs/Android Gradle test build/workspace/MainApp/app/src/main/res/drawable-hdpi/logo_splash.png /var/lib/jenkins/jobs/Android Gradle test build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png
这意味着你尝试复制前 7 个参数
/var/lib/jenkins/jobs/Android
Gradle
test
build/workspace/MainApp/app/src/main/res/drawable-hdpi/logo_splash.png
/var/lib/jenkins/jobs/Android
Gradle
test
到最终目的地:
build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png
由于有多个源参数,它实际上应该是一个文件夹。
答案3
尝试
cp -f "$SRC" "$DEST"
- 引号将处理文件名中的空格
- 不需要
-r
(递归)