linux - varios - Sobrescribir archivo al copiar contenido IF de ellos no es lo mismo
renombrar archivo linux (3)
¿Has probado la línea de comando?
cp -ru A/* B/
Debe copiar recursivamente todos los archivos modificados (marca de tiempo más reciente) del directorio A al directorio B.
También puede usar -a
lugar de -r
en la línea de comando, dependiendo de lo que desee hacer. Vea la página man de cp
.
Tengo muchos archivos de un lado (A) y muchos otros archivos en otro lugar (B)
Estoy copiando de A a B, hay muchos archivos iguales, ¡pero el contenido podría ser diferente!
Por lo general, utilicé mc (Midnight Commander) para hacerlo, y seleccioné "Overwrite if different size". Pero hay una situación en la que el tamaño es el mismo, pero el contenido es diferente. En este caso, mc mantiene el archivo en el lugar B y no lo sobrescribe.
En el cuadro de diálogo sobrescribir mc hay un trabajo "Actualizar", no sé lo que está haciendo? En ayuda, no hay tal información, tal vez esta es una solución?
Así que estoy buscando una solución que me puede ayudar a copiar todos los archivos de A a B y sobrescribir los archivos en el lugar B si existen Y el contenido es diferente de A.
si el archivo en el lugar "B" existe (el mismo nombre) y el contenido es diferente, debe sobrescribirse por archivo desde el lugar "A" cada vez.
¿Conoces alguna solución?
Es posible que desee mantener algún tipo de archivo ''índice'' que contenga el hash SHA-1 de los archivos, que usted crea cuando los escribe. Luego puede calcular el hash "fuente" y compararlo con el hash "destino" del archivo de índice. Esto solo funcionará si este proceso es la única forma en que los archivos se escriben en el destino.
rsync
ya que esto no dependerá de la fecha del archivo, sino que realmente verificará si el contenido del archivo ha cambiado. Por ejemplo:
#> rsync -cr <directory to copy FROM> <directory to copy TO>
Rsync copia archivos ao desde un host remoto o localmente en el host actual (no admite la copia de archivos entre dos hosts remotos).
-c, --checksum skip based on checksum, not mod-time & size
-r, --recursive recurse into directories
Ver man rsync
para más opciones y detalles.