Similar pero más exigente que esta pregunta:¿Cómo copiar archivos sin modificar en absoluto los tiempos de creación de archivos?
Quiero copiar archivos entre computadoras sin alterar las fechas de "Modificación" y "Creación".
El propósito es comparar diff
algunos códigos de proyecto en 3 computadoras diferentes que logré sincronizar cuando estaba trabajando en ellas. Pero trabajé solo en una máquina a la vez y ahora no recuerdo cuál era la más actualizada. Es un desastre y quiero unificar las copias (y, con suerte, ponerlas bajo control de versiones) de una vez por todas.
Entonces, cuando uso diff
herramientas, conocer las fechas de modificación de los archivos puede ayudarme a comprender y fusionar los cambios.
2 de las 3 computadoras son Linux y 1 es Windows 8.
Cualquier otra forma de lograr lo anterior y las mejores prácticas en tales situaciones son bienvenidas.
Respuesta1
En Linux (y otros sistemas operativos similares a Unix), puede copiar archivos hacia y desde una unidad flash o desde un servidor SMB/FTP con
cp -p
Eso debería preservar las marcas de tiempo.
No sé si se pueden conservar las marcas de tiempo al cargarlas en el servidor.
Respuesta2
Generalmente hay tres atributos para archivo/carpeta. Horarios de creación, modificación y acceso. No hay mucha importancia en el tiempo de acceso. En Linux, el tiempo de creación no se utiliza (y no se puede acceder a él mediante procedimientos estándar). Entonces el único atributo importante es el tiempo de modificación. Mientras se copian datos con la herramienta del sistema operativo, el tiempo de modificación no cambia (al menos para Linux). Si este no es el caso, puede comprimir los datos antes de transferirlos y descomprimirlos en el otro extremo. Generalmente, las herramientas de respaldo conservan todos los atributos.
Si desea conservar estrictamente todos los atributos, puede utilizar los siguientes métodos.
cp
con la opción -a
también conocida como --archive
--preserve=all
o
rsync
con -t
.
Estos comandos están disponibles en Linux de forma predeterminada (también se pueden descargar para Windows).
Si no está interesado en las herramientas de línea de comandos, utilice una herramienta de sincronización que admita la copia de atributos para copiar los datos.
Respuesta3
Si no está seguro de cuál es el mejor código en las computadoras, creo que es mejor copiar los tres directorios de origen en una máquina y luego fusionar archivo por archivo.Fusionar herramientas.
Otra forma sería crear un repositorio de git en una máquina y copiar las fuentes de otra computadora, sobrescribir los archivos del repositorio de git, o simplemente agregarlos a una nueva rama y luego usargitLa fusión. Para Windows, prefieroCliente Tortuga Gitpara hacer todas las cosas básicas de control de versiones.
En cuanto a la copia de metadatos, como sugieren otros, puede utilizar rsync -t
, cp --preserve=all
. Para transferencias FTP, puede utilizar scp -p
.
Respuesta4
Entre las dos computadoras Linux puedes usarsincronización, mantendrá las marcas de tiempo tal como están.
Para Windows puedes usarrobocopiaPara copiar los archivos sin cambiar las marcas de tiempo, tal vez pueda usarlo para copiar los archivos desde un servidor FTP en su máquina Linux a Windows.