Utilisez
cp -fr /source/file /destination
cela devrait probablement résoudre le problème.
Cette question a déjà été abordée, cependant vous pouvez écrire un petit script comme celui-ci :
#!/bin/bash
if [ ! -d "$2" ]; then
mkdir -p "$2"
fi
cp -R "$1" "$2"
Expliquer un peu ce script
-
#!/bin/bash:indique à votre ordinateur d'utiliser lebashinterprète. -
if [ ! -d "$2" ]; then:Si la deuxième variable que vous avez fournie n'existe pas déjà... -
mkdir -p "$2":créez ce répertoire, y compris tous les répertoires parents fournis dans le chemin.Exécution de
mkdir -p one/two/threefera :$ mkdir -p one/two/three $ tree one one/ └── two └── threeSi vous ne fournissez pas le
-ptag, vous obtiendrez une erreur si les répertoiresoneettwon'existe pas :$ mkdir one/two/three mkdir: cannot create directory ‘one/two/three’: No such file or directory -
fi:Ferme le si déclaration. -
cp -R "$1" "$2":copie les fichiers de la première variable que vous avez fournie dans le répertoire de la deuxième variable que vous avez fournie.Donc, si vous avez exécuté
script.sh mars pluto,marsserait la première variable ($1) etplutoserait la deuxième variable ($2).Le
-Rflag signifie qu'il le fait de manière récursive, donc lecpla commande passera par tout les fichiers et dossiers de votre première variable, et copiez-les dans le répertoire de votre seconde variable.