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 elbashinté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/threehará:$ mkdir -p one/two/three $ tree one one/ └── two └── threeSi no proporciona el
-petiqueta, obtendrá un error si los directoriosoneytwono 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,marssería la primera variable ($1) yplutosería la segunda variable ($2).El
-Rflag significa que hace esto recursivamente, por lo que elcpel comando pasará por todo los archivos y carpetas de su primera variable y cópielos en el directorio de su segunda variable.