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?
23
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 ... :)
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.htmlEche un vistazo a rsync (1) . Tiene la intención de hacer exactamente lo que quieres.
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
--update
opció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
--delete
opción.fuente
rm Y; cp X Y
hará.Intente usar rsnyc, posiblemente con el siguiente comando:
-u
= no sobrescribe un archivo en el destino, si se modificafuente
rm Y; cp X Y
hará.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
fuente