En Linux, simplemente podemos hacer:
cp -pr directory
¿Cómo hacer eso en Windows? ¿Se puede hacer en el Explorador de Windows? ¿Alguna sugerencia de herramienta GUI?
Sería lo mejor si puedo mantener los permisos NTFS y el tiempo de creación / modificación / acceso. Como mínimo, necesito preservar la fecha de modificación para los archivos y los directorios. La copia del Explorador de Windows no conserva la fecha de modificación de los directorios.
windows
file-management
netvope
fuente
fuente
robocopy c:\folderA c:\folderB /mir /it
es todo lo que necesitas. Tenga en cuenta que esto eliminará completamente c: \ folderB y creará una nueva c: \ folderB que refleje c: \ folderA.Respuestas:
No hay una manera simple de hacer esto en Windows. Hay varios programas que afirman poder preservar las fechas de creación de los archivos.
Aquí hay algunos programas que pueden hacer el truco http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html (Enlace roto; no en la máquina Wayback).
Usar solo Windows Explorer no es posible. Si mira la documentación para CopyFile, la función CopyFile (winbase.h) , verá que evita el tema. Pero la función CopyFile (Windows Developer Preview) (un archivo de 2012 de la misma URL) dice:
fuente
RoboCopy puede preservar el tiempo m para los directorios con el modificador / DCOPY: T, pero esto solo funciona en Vista y versiones posteriores. También puede preservar las ACL. Alternativamente, FastCopy se puede configurar para preservar directorios mtimes, ACLs y ADSes .
fuente
/mir
?/mir
elimina datos de la carpeta de destino, sino que también necesita/dcopy:t
preservar el directorio mtimes y/copyall
preservar más que solo las marcas de tiempo del archivo.... o simplemente puede hacer un archivo zip (con el método de compresión configurado en "Almacenar") y luego descomprimir los archivos donde desea copiarlos. Los atributos de fecha / hora son los mismos que los archivos originales.
fuente
Herramienta de línea de comandos de Robocopy (viene con la mayoría de las versiones de Windows)
En mi máquina con Windows 10 se encuentra en
C:\Windows\System32
Desde Wikipedia , se puede usar con el siguiente conjunto de opciones para conservar las marcas de tiempo de archivos y directorios, así como otros atributos:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPYALL /E /R:0
/DCOPY:T
preservar las marcas de tiempo de los directorios originales (requiere la versión XP026 o posterior)/E
: Copie directorios de forma recursiva, incluidos los directorios vacíos/R:0
: no vuelva a intentar archivos bloqueados (el número de reintentos en el valor predeterminado de copias fallidas es 1 millón),/COPYALL
: Copie toda la información del archivo(equivalente a
/COPY:DATSOU
, dondeD
= Datos,A
= Atributos,T
= Marcas de tiempo de archivo ,S
= Seguridad = ACL de NTFS,O
= Información del propietario,U
= Información de auditoría),Si solo desea conservar las marcas de fecha y hora del directorio, pero no desea que se copien subdirectorios vacíos y no desea que se conserven otros atributos, puede usar:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S
donde
/S
copia subdirectorios no vacíosPara ver la sintaxis completa, escriba
robocopy /?
en el símbolo del sistema o eche un vistazo a estas publicaciones de blog: https://ss64.com/nt/robocopy.html y https://techjourney.net/robocopy-syntax-command-line -conmutadores-y-ejemplos /Un ejemplo de un comando que ejecuté recientemente:
Robocopy D:\ C:\D_backup /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Observe cómo excluir 2 subdirectorios requiere que la
/XD
bandera se use dos veces. Además, la segunda exclusión de directorio usa comillas porque hay espacios en el nombre del directorio.Finalmente, puede agregar la
/L
bandera para probar el comando antes de hacerlo de verdad. De esta manera, puede verificar que no copiará (ni eliminará) ningún directorio / archivo que no desee y que no haya errores en su comando.Editar: gotcha al copiar desde un directorio raíz (también conocido como unidad) a una carpeta (directorio no root)
Después de ejecutar el comando de ejemplo anterior, ¡el directorio no estaba visible! (A pesar de que
show hidden files
yshow system files
se comprobaron en Windows 10!) El siguiente comando como por https://serverfault.com/a/455029/399723 fijo esto:Alternativamente, agregar
/A-:SH
"desarma el atributo oculto de los archivos del sistema", por lo que puede evitar que el directorio se oculte en primer lugar, según https://serverfault.com/a/565804/399723 . Consulte también https://ss64.com/nt/robocopy.html .Esta discusión arroja más luz sobre esta opción como solución.
Robocopy D:\ C:\D_backup /A-:SH /DCOPY:T /COPYALL /E /R:0 /ZB /ETA /TEE /V /FP /XD D:\$RECYCLE.BIN /XD "D:\System Volume Information" /LOG:C:\D_backup_robocopy.LOG /MIR
Otro software:
Alternativamente, puede descargar una versión GUI de robocopy si no desea usar la línea de comando.
Otra utilidad de Windows es XCopy , aunque está incluida en Windows 10, está en desuso. Vea el enlace para las trampas.
La página de Wikipedia para RoboCopy (vinculada en la parte superior de esta publicación) enumera otro software que se puede utilizar.
fuente
¡Sincronízalo! 3.5 conserva todas las marcas de tiempo (archivos y carpetas, modificación y creación). Es el único software que conozco en Windows XP que lo hace perfectamente, además de Robocopy, y he probado muchos. Sin embargo, tenga cuidado, puede producir archivos corruptos con archivos fuente descargados usando software como FlashGet u Orbit Downloader (los archivos resultantes tienen el mismo tamaño pero solo se copian 25kB, el resto está lleno de ceros). Le pregunté al creador del software si podía entender por qué, pero no tenía idea; Supongo que tiene que ver con la descarga de archivos de software en pequeños paquetes (destinados a optimizar la velocidad) y mi partición de datos está muy fragmentada.
Robocopy XP026 está incluido en Windows Vista, pero funciona en Windows XP. Busque "Robocopy XP026", o puedo enviar el archivo aquí, ya que no es muy fácil de encontrar. O puede instalar la GUI de Robocopy y luego buscar el
robocopy.exe
archivo en la carpeta System32, para usarlo desde la línea de comandos. El archivo que tengo es 208kB y el número de versión es 5.1.2600.26.Sin embargo, parece haber un error con el "modo de copia de seguridad":
La versión de Robocopy XP027 aparentemente ya no tiene este error, pero no funciona en Windows XP.
fuente
RoboCopy debería poder hacerlo con el interruptor COPYALL. Puede obtener la versión GUI de Microsoft Technet .
fuente
FastCopy puede hacer esto y es gratis.
fuente
No estoy seguro de qué interruptor mantiene la fecha del archivo, pero esto funciona. Luego comprimo el directorio C: \ temp \ Pics que también mantiene las fechas de los archivos como se mencionó anteriormente.
fuente
La forma más simple para mí, hasta ahora, es el método "enviar a". No necesita ninguna aplicación externa. En mi experiencia, conserva todos los atributos del archivo original.
El método que utilicé antes era el método de compresión / carpeta zip. Aunque esto seguramente tomará más tiempo ya que los archivos no solo se copian, sino que se procesan y comprimen, tanto al comprimir como al descomprimir.
%appdata%\Microsoft\Windows\SendTo
o.
C:\Users\_______\AppData\Roaming\Microsoft\Windows\SendTo
Agregue un acceso directo a la carpeta donde desea copiarlos, y el elemento aparecerá en su
sendto
menú cuando haga clic con el botón derecho en el archivo que desea copiar.fuente
xcopy Source Destination /kes
. (Elk
indicador permite conservar la marca de tiempo de modificación, pero no se conserva la fecha de creación). El método de compresión para comprimir (o rar) es un buen método, pero a menudo lleva demasiado tiempo.Es simple mover carpetas y directorios y aún preservar la fecha de creación. Simplemente mantenga presionada Shifty arrastre la carpeta a la nueva ubicación (comando mover). La fecha de modificación será la fecha actual, pero la fecha de creación conservará la fecha original.
fuente
Manera simple de mover carpetas y preservar la Fecha y hora de creación usando estas utilidades
http://lantechsoft.com/data-copy.html
Otro donde puede preservar fechas al copiar archivos.
http://technocomsolutions.com/data-copy-tool.html
fuente
xcopy funciona bien para esto. Simplemente especifique el indicador / k para copiar atributos.
Sintaxis
xcopy Origen [Destino] [Parámetros opcionales]
El comando xcopy puede copiar uno o más archivos o árboles de directorios de una ubicación a otra. El comando xcopy se incluye en todas las versiones de Windows desde Windows 95 a Windows 8.
fuente
/K
parámetro y no conservó las fechas de creación.Lo logro con
rsync -avu --modify-window = 3602 directorio_origen / directorio_destino /
(esto realmente se usa como una herramienta de sincronización de un directorio a otro espejo y la opción de ventana de tiempo es para evitar problemas cuando los sistemas Windows mueven los relojes 1 hora para el horario de verano, etc. en comparación con los sistemas Linux)
en un entorno cygwin dentro de Windows o en una máquina virtual Linux dentro de Windows con unidades de Windows montadas (por ejemplo, con virtualbox)
NB cygwin y virtualbox son gratuitos y le permiten tener, en menor o mayor medida, la funcionalidad de linux en Windows; ambos requieren un poco de configuración, particularmente virtualbox, pero tienen muchos beneficios ...
Mi propio problema era que los archivos tenían la hora correcta pero los directorios no. rsync ha ordenado las fechas en los directorios, así como las fechas en los archivos.
fuente
Este comando copia la misma marca de tiempo para los archivos. Tenga en cuenta que no marca exactamente el mismo tiempo para las carpetas en sí. También tenga en cuenta que coloqué comillas alrededor del origen (Temp1) y el destino (Temp2). Esto se hace en caso de que haya espacios en los caminos. No tengo espacios, pero pensé que debería incluirlo en el peor de los casos.
Para mantener las marcas de tiempo iguales para las carpetas también:
robocopy / E / copy: DAT / dcopy: DAT "C: \ Temp1" "c: \ Temp2"
fuente