0 votos

¿Cómo mover una carpeta a otro path y volver al mismo árbol fusionando su contenido en Unix?

En mi teléfono Android, tengo:

  • Un trabajo cron para mover archivos a la 1:59 am desde /sdcard/WhatsApp/Media a la carpeta /sdcard/wppmediabkp antes de la copia de seguridad de WhatsApp a las 2:00 am:

mv -f /sdcard/WhatsApp/Media /sdcard/wppmediabkp

  • Un trabajo cron para mover archivos a las 2:30 am de regreso (de /sdcard/wppmediabkp a /sdcard/WhatsApp/Media):

mv -f /sdcard/wppmediabkp /sdcard/WhatsApp/Media

  • Los "trabajos cron" son tareas en la aplicación "Tasks!" (programándolos con 00 59 1 ? * * y 00 30 2 ? * *). Las instrucciones también han sido probadas en la aplicación Termux.

Objetivo:

  • Excluir la carpeta Media de la copia de seguridad, pero también restaurar el "enlace" de imágenes en los chats (para no tener que descargarlas nuevamente).

En la restauración de la carpeta wppmediabkp en /sdcard/WhatsApp/Media:

  1. A veces funciona bien (crea la carpeta /sdcard/WhatsApp/Media con todos sus contenidos). Ocurre cuando la carpeta /sdcard/WhatsApp/Media no existe. Para mí, es el comportamiento esperado.
  2. A veces crea una subcarpeta (/sdcard/WhatsApp/Media/wppmediabkp). Ocurre cuando la carpeta /sdcard/WhatsApp/Media ya existe. Para mí, es un problema - me gustaría restaurar el árbol de carpetas original, fusionando sus contenidos.

Creo que se reduce a un problema de Unix, porque puedo usar todos los comandos básicos de Unix.

¿Cómo resolverlo (para recuperar la carpeta Media fusionando sus contenidos) usando el comando mv?

0 votos

Con mv (y cp), cuando el objetivo es un directorio, se copia el último elemento de cada ruta de origen en el directorio de destino, por lo que el comando de restauración debería ser mv -f /sdcard/wppmediabkp/Media /sdcard/WhatsApp/.

1voto

Un enfoque es no mover directorios. Permítales existir todo el tiempo, mueva su contenido de un lado a otro:

mv -f /sdcard/WhatsApp/Media/* /sdcard/wppmediabkp/
# y luego
mv -f /sdcard/wppmediabkp/* /sdcard/WhatsApp/Media/

Notas:

  • * no coincidirá con archivos/directorios ocultos;
  • con demasiados objetos podría encontrarse con un error de "lista de argumentos demasiado larga".

En caso de que alguno de estos sea un problema, la solución debería usar algo como find … -exec mv …. De cualquier manera, mueva lo que está dentro del directorio, no el directorio en sí.

0 votos

¡Excelente! Aunque la aplicación Schedule! no funciona bien, Termux muestra que son correctos para la operación de copia de seguridad deseada.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android 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