Привет, я пытаюсь автоматизировать систему сборки 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: target `build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png 'не является каталогом

3 ответа3

1

Софистика

Защитите строки параметров и расширения от разделения слов, заключив их в "кавычки". Обратите внимание, как следующие примеры по-разному кодируются? Это показывает различия между тем, как слова группируются и разделяются.

На самом деле, вам может даже не понадобиться \ escape\ пробел пути к файлу, либо.


Цитируется

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"

Un-Цитируется

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
0

Я не понимаю, что конкретно вы пытаетесь установить для обеих переменных, но команда результата будет расширена как:

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 

которая на самом деле должна быть папкой из-за нескольких исходных аргументов.

0

пытаться

cp -f  "$SRC" "$DEST"
  • цитата будет справляться за место в имени файла
  • нет необходимости в -r (рекурсивно)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .