Shell script Copia o arquivo de um diretório para outro que não está funcionando

0

Oi eu estou tentando automatizar o sistema de compilação android através de Jenkins. Aqui eu estou tentando copiar o arquivo de imagem de um diretório para outro diretório, mas sempre recebendo "Nenhum tal arquivo ou diretório"

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

Registro de erros: cp: target 'build / workspace / MainApp / app / src / main / res / drawable / logo_splash.png' não é um diretório

    
por Nagaraj ks 01.04.2016 / 10:09

3 respostas

1

Divisão de palavras

Proteja as sequências de caracteres e expansões de parâmetros da divisão de palavras agrupando-as em "quotes" . Observe como os exemplos a seguir são codificados por cores de maneira diferente? Está revelando as diferenças entre como as palavras estão sendo agrupadas e separadas.

Você pode ou não precisar mesmo \ escape \ do white-space do caminho do arquivo.

Citado

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"

Não citado

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
    
por 01.04.2016 / 21:48
0

Eu não entendo o que você tenta definir para as duas variáveis, mas o comando result será expandido como:

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

Isso significa que você tenta copiar os primeiros 7 argumentos

/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

para o destino final:

build/workspace/MainApp/app/src/main/res/drawable/logo_splash.png 

que, na verdade, deve ser uma pasta devido a vários argumentos de origem.

    
por 01.04.2016 / 10:48
0

tente

cp -f  "$SRC" "$DEST"
  • citação lidará com espaço no nome do arquivo
  • não há necessidade de -r (recursivo)
por 01.04.2016 / 11:32