
Quiero tener la misma carpeta en dos ubicaciones diferentes en mi Ubuntu. Si actualizo algo en una, también debería actualizarse en la otra ubicación.
¿Cómo puedo lograrlo?
Respuesta1
Como se señala en los comentarios pero no como una respuesta adecuada:
En muchos casos, un enlace simbólico es la solución más sencilla.
Puede crearlos fácilmente en la línea de comando (usando el ln
comando con -s
parámetro). También puede crearlos fácilmente usando una GUI: la mayoría de los exploradores de archivos (nautilus, ...) le permiten crear un enlace simbólico usando arrastrar y soltar (como para mover un archivo) mientras mantiene presionada una tecla modificadora (CTRL+MAYÚS).
Ejemplo de uso de la línea de comando:
$ mkdir first_dir
$ ln -s ./first_dir ./second_dir
$ ls
first_dir second_dir
$ touch ./first_dir/test_1
$ touch ./second_dir/test_2
$ ls ./first_dir
test_1 test_2
$ ls ./second_dir
test_1 test_2
Respuesta2
Usarunir montajes.
Supongamos que tiene un directorio existente /home/pandey/original
y deseaespejopara /home/pandey/mirror
que todo lo que hagas en cualquiera de ellos se haga automáticamente también en el otro.
Esto no requiere ninguna sincronización ni copia entre los dos directorios. Aenlazar montajees solo otrovistaal directorio original y lo que sucede en uno también sucede en el otro.
Cree (como su usuario) el nuevo directorio
/home/pandey/mirror
:mkdir /home/pandey/mirror
montaje en enlaceel directorio original a la ruta recién creada. Esto requiere acceso root:
sudo mount --bind /home/pandey/original /home/pandey/mirror
Disfrutar.
Para deshacer esto, simplemente
sudo umount /home/pandey/mirror
rmdir /home/pandey/mirror
Vea también esta pregunta y su excelente respuesta en stackexchangesobre montajes de enlace.
Respuesta3
Puedes hacerlo configurando un trabajo crontab:
- Abre tu terminal y escribe
crontab -e
- Presione
i
para activar el modo de inserción de su editor vim.
Puede ingresar el comando que desea que se realice allí, para poder copiar todos los archivos de la carpeta en otra carpeta. Por ejemplo, si desea copiar todos los archivos, /home/user/folder_name
debe /home/user/public
insertar este comando en su crontab
archivo:
rsync /home/user/folder_name -r /home/user/public
Esto copiará todos los archivos en el intervalo deseado. Si desea copiar todos los archivos a las 21:30 todos los días, su edición debe ser:
30 21 * * * rsync /home/user/folder_name -r /home/user/public
Para más información sobrecrontabmiraraquío usar man crontab
.