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 lebash
interprè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/three
fera :$ mkdir -p one/two/three $ tree one one/ └── two └── three
Si vous ne fournissez pas le
-p
tag, vous obtiendrez une erreur si les répertoiresone
ettwo
n'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
,mars
serait la première variable ($1
) etpluto
serait la deuxième variable ($2
).Le
-R
flag signifie qu'il le fait de manière récursive, donc lecp
la commande passera par tout les fichiers et dossiers de votre première variable, et copiez-les dans le répertoire de votre seconde variable.