Usar
cp -fr /source/file /destination
esto probablemente debería resolver el problema.
Esta pregunta ya se ha discutido, sin embargo, puede escribir un pequeño guión como este:
#!/bin/bash
if [ ! -d "$2" ]; then
mkdir -p "$2"
fi
cp -R "$1" "$2"
Explicando un poco este script
-
#!/bin/bash
:le dice a su computadora que use elbash
intérprete. -
if [ ! -d "$2" ]; then
:Si la segunda variable que proporcionó aún no existe... -
mkdir -p "$2"
:crear ese directorio, incluidos los directorios principales proporcionados en la ruta.Ejecutando
mkdir -p one/two/three
hará:$ mkdir -p one/two/three $ tree one one/ └── two └── three
Si no proporciona el
-p
etiqueta, obtendrá un error si los directoriosone
ytwo
no existen:$ mkdir one/two/three mkdir: cannot create directory ‘one/two/three’: No such file or directory
-
fi
:Cierra el si declaración. -
cp -R "$1" "$2"
:copia archivos de la primera variable que proporcionó al directorio de la segunda variable que proporcionó.Entonces, si ejecutó
script.sh mars pluto
,mars
sería la primera variable ($1
) ypluto
sería la segunda variable ($2
).El
-R
flag significa que hace esto recursivamente, por lo que elcp
el comando pasará por todo los archivos y carpetas de su primera variable y cópielos en el directorio de su segunda variable.