web-dev-qa-db-fra.com

Cp: ​​la cible n'est pas un répertoire

J'ai un script bash avec cette ligne:

cp -R /usr/lib/gcc/x86_64-linux-gnu/$GCC_VERSION/* /app/.apt/usr/lib/gcc/x86_64-linux-gnu/$GCC_VERSION

Script complet: https://github.com/virtualstaticvoid/heroku-buildpack-r/blob/cedar-14/bin/compile

Malheureusement, il échoue avec cp: target ‘/app/.apt/usr/lib/gcc/x86_64-linux-gnu/4.8’ is not a directory

Des conseils, qu'est-ce qui pourrait être faux? Malheureusement, je n'ai pas beaucoup d'expérience avec bash.

Auparavant, ce script s'exécutait seul et fonctionnait. Maintenant, je devais ajouter quelques apt-get install avant, et il a commencé à échouer, donc j'essaye de le réparer.

6
Archeg

Il n'y a pas de répertoire avec le nom 4.8 ... C'est votre problème :)

Exécutez ceci avant votre commande cp:

mkdir -p /app/.apt/usr/lib/gcc/x86_64-linux-gnu/$GCC_VERSION

Il crée tous les répertoires dans le chemin donné!

9
Joda

Cela devrait fonctionner, ajoutez / à la fin de la commande cp pour lui faire comprendre que son dir:

mkdir -p /app/.apt
cp -R $BUILD_DIR/.apt/* /app/.apt/
3
Drako