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 ilbash
interprete. -
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/three
farà:$ mkdir -p one/two/three $ tree one one/ └── two └── three
Se non fornisci il
-p
tag quindi riceverai un errore se le directoryone
etwo
non 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
,mars
sarebbe la prima variabile ($1
) epluto
sarebbe la seconda variabile ($2
).Il
-R
flag significa che lo fa in modo ricorsivo, quindi ilcp
il comando passerà attraverso tutto i file e le cartelle dalla tua prima variabile e copiali nella directory della tua seconda variabile.