Usa
cp -fr /source/file /destination
questo dovrebbe probabilmente risolvere il problema.
Questa domanda è già stata discussa, tuttavia puoi scrivere un piccolo script come questo:
#!/bin/bash
if [ ! -d "$2" ]; then
mkdir -p "$2"
fi
cp -R "$1" "$2"
Spiegazione un po' di questo script
-
#!/bin/bash:dice al tuo computer di usare ilbashinterprete. -
if [ ! -d "$2" ]; then:Se la seconda variabile che hai fornito non esiste già... -
mkdir -p "$2":crea quella directory, incluse tutte le directory padre fornite nel percorso.Esecuzione di
mkdir -p one/two/threefarà:$ mkdir -p one/two/three $ tree one one/ └── two └── threeSe non fornisci il
-ptag quindi riceverai un errore se le directoryoneetwonon esistono:$ mkdir one/two/three mkdir: cannot create directory ‘one/two/three’: No such file or directory -
fi:Chiude if dichiarazione. -
cp -R "$1" "$2":copia i file dalla prima variabile che hai fornito nella directory della seconda variabile che hai fornito.Quindi, se hai eseguito
script.sh mars pluto,marssarebbe la prima variabile ($1) eplutosarebbe la seconda variabile ($2).Il
-Rflag significa che lo fa in modo ricorsivo, quindi ilcpil comando passerà attraverso tutto i file e le cartelle dalla tua prima variabile e copiali nella directory della tua seconda variabile.