Sincronice dos carpetas locales en bash


23

Tengo una gran carpeta "X" en mi directorio de inicio, y una copia desactualizada de esto en una unidad flash: Y. ¿Cuál es el análogo de rm Y; cp X Y, pero sin sobrescribir los archivos ya existentes?

Respuestas:


26

Hay muchas más propiedades para rsync de las que menciona la respuesta anterior. Deberías mirarlos tú mismo:

man rsync

Pero para su problema, sugeriría:

rsync -a --delete X Y

De esta manera, el receptor (Y) eliminará cualquier archivo que tenga que no esté en X. Sin embargo, asegúrese de hacerlo correctamente. Utilizado incorrectamente como root puede matar fácilmente su sistema ... :)


1
Acepta que debes tener mucho cuidado con esto. Intente agregar --dry-run al comando para ver qué sucederá sin realizar ningún cambio. Si va bien, haga el mismo comando sin --dry-run
squarecandy el

Una pequeña corrección que me tomó un tiempo para llegar a: rsync -a --delete X/ Y. Ese pequeño corte después de X lo hizo funcionar como estaba previsto para mí, por lo que podría ayudar a otros también. Explicado aquí: abbeyworkshop.com/howto/unix/nix_rsync/index.html
Shovalt

15

Eche un vistazo a rsync (1) . Tiene la intención de hacer exactamente lo que quieres.

rsync -av X Y

Admite la copia remota, a través de su propio protocolo o ssh, pero también se puede usar localmente.

Dependiendo del comportamiento exacto que desee, también puede pasar la --updateopción. Esto le indicará a rsync que no sobrescriba los archivos que ya existen en el destino y que son más nuevos que los de la fuente.

Si desea eliminar archivos adicionales (es decir, archivos que existen en Y, pero no en X), puede agregar la --deleteopción.


Pero no eliminará archivos, que los eliminados en X, mientras que lo rm Y; cp X Yhará.

Para eliminar archivos que se eliminaron de X, use la opción --delete.
csonuryilmaz

0

Intente usar rsnyc, posiblemente con el siguiente comando:

rsync -avzu /home/x /y

-u = no sobrescribe un archivo en el destino, si se modifica


Pero no eliminará archivos, que los eliminados en X, mientras que lo rm Y; cp X Yhará.

0

Creo que algunas de las funcionalidades que está buscando en la opción -u (actualización) realmente existen en esta opción:

"--no existe-existente" - omite la actualización de archivos que existen en el receptor

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.