0 votos

Copiar archivos y directorios mediante scripts

Estoy tratando de hacer una copia de seguridad de ciertos archivos y directorios en un script.

Hasta ahora lo he hecho:

bkdest=/Web
sources=("includes_php" "html/css" "html/includes" "html/index.php")
datestamp=$(date +%Y_%m_%d_%H_%M_%S)
odir=/Web-Backup/${datestamp}_Web
for target in ${sources[@]}; do
  mkdir -p ${odir}${target}
  cp -R /Web${target} ${odir}${target}
done

El problema que estoy teniendo es que copio la carpeta, en una carpeta de nombre idéntico cuando copio carpetas. ¿Hay alguna manera mejor de hacer esto o tengo que manejar las carpetas y los archivos en listas separadas?

La máquina que estoy usando está en 10.12.6 si eso hace una diferencia.

1voto

Larry Puntos 41

Al final, comprobé la matriz de fuentes así:

bkdest=/Web
sources=("includes_php/" "html/css/" "html/includes/" "html/index.php")
datestamp=$(date +%Y_%m_%d_%H_%M_%S)
odir=/Web-Backup/${datestamp}_Web
for target in ${sources[@]}; do
  if [ "${target: -1}" == "/" ]
  then
    mkdir -p ${odir}${target}
    cp -R /Web${target}* ${odir}${target}
  else
    cp /Web${target} ${odir}${target}
done

En resumen, pongo la / al final de las carpetas. Comprobé el último carácter de la cadena utilizando ${target: -1} y si es / lo trato como una carpeta, sacando el contenido en lugar de la propia carpeta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X