2010-05-27 21:51:36 +0000 2010-05-27 21:51:36 +0000
43
43
Advertisement

¿Cómo conservar los atributos de los archivos al copiarlos en Windows?

Advertisement

En Linux, podemos hacer simplemente:

cp -pr directory

¿Cómo hacer eso en Windows? ¿Se puede hacer en el Explorador de Windows? ¿Alguna sugerencia de herramienta GUI?

Lo mejor sería que pudiera conservar los permisos NTFS y el tiempo de creación/modificación/acceso. Como mínimo, necesito conservar la fecha de modificación de los archivos y los directorios. La copia del Explorador de Windows no conserva la fecha de modificación de los directorios.

Advertisement
Advertisement

Respuestas (14)

23
23
23
2010-06-01 20:25:56 +0000

RoboCopy puede preservar el mtime de los directorios con la opción /DCOPY:T, pero esto sólo funciona en Vista y en versiones más recientes. También puede conservar las ACL. Alternativamente, FastCopy puede ser configurado para preservar los tiemposm de los directorios, ACLs, y ADSes .

21
21
21
2012-03-05 14:33:18 +0000

… o simplemente puede hacer un archivo zip (con el método de compresión establecido sólo en “Store”), y luego descomprimir los archivos donde quería copiarlos. Los atributos de fecha/hora son los mismos que los de los archivos originales.

10
Advertisement
10
10
2018-05-26 19:48:07 +0000
Advertisement

La herramienta de línea de comandos Robocopy (viene con la mayoría de las versiones de Windows) En mi máquina de Windows 10 se encuentra en C:\Windows\System32

De Wikipedia , se puede utilizar con el siguiente conjunto de opciones para preservar 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 fechas de los directorios originales (requiere la versión XP026 o posterior)
  • /E: Copiar directorios de forma recursiva, incluidos los directorios vacíos
  • /R:0: no reintentar archivos bloqueados (el número de reintentos en copias fallidas valor por defecto es 1 millón),

  • /COPYALL: Copiar toda la información de los archivos, (equivalente a /COPY:DATSOU, donde

Si sólo quiere preservar la fecha y las marcas de tiempo de los directorios, pero no quiere que se copien los subdirectorios vacíos y no quiere que se preserven otros atributos entonces puede usar:
Robocopy C:\some_directory D:\some_directory /DCOPY:T /COPY:T /S

donde /S copia los subdirectorios no vacíos

Para ver la sintaxis completa, escriba robocopy /? en una línea de comandos, o eche un vistazo a estas entradas del blog: https://ss64.com/nt/robocopy.html y https://techjourney.net/robocopy-syntax-command-line-switches-and-examples/

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

Fíjese en que para excluir 2 subdirectorios hay que usar dos veces la bandera /XD. Además, la segunda exclusión de directorio utiliza comillas porque hay espacios en el nombre del directorio.

Por último, puede añadir la bandera /L para probar el comando antes de hacerlo de verdad. De esta manera puede verificar que no copiará (o eliminará) ningún directorio/archivo que no desee, y que no hay errores en su comando.

Edit: gotcha when copying from a Root Directory (aka drive) to a Folder (non-root directory)

Después de ejecutar el comando de ejemplo de arriba, ¡el directorio no era visible! (¡Aunque show hidden files y show system files estaban marcados en Windows 10!) El siguiente comando según https://serverfault.com/a/455029/399723 arregló esto:

attrib -h -s C:\D_backup

Alternativamente, añadiendo el /A-:SH “desestablece el Atributo Oculto de los archivos del Sistema”, así puede evitar que el directorio se oculte en primer lugar, según https://serverfault.com/a/565804/399723 . Véase también https://ss64.com/nt/robocopy.html .
Esta descussion 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:

Como alternativa, puede descargar una versión GUI de robocopy si no quiere usar la línea de comandos.

Otra utilidad de windows es XCopy , aunque está incluida en windows 10, está siendo obsoleta. Ver el enlace para los gotchas.

La página de Wikipedia para RoboCopy (enlazada en la parte superior de este post) enumera otros programas que se pueden utilizar.

6
6
6
2010-05-27 23:04:39 +0000

No hay una manera sencilla de hacer esto en Windows.  Hay varios programas que dicen ser capaces de preservar las fechas de creación de los archivos.
Aquí hay algunos programas que podrían hacer el truco http://forum.soft32.com/windows/preserve-creation-date-Copy-ftopict361820.html (Enlace roto; no en la Wayback Machine).

Usando sólo el Explorador de Windows no es posible. Si miras la documentación de CopyFile función CopyFile (winbase.h) , verás que evita el tema.  Pero&nbsp función CopyFile (Windows Developer Preview) (un archivo de 2012 de la misma URL) dice:

Semántica de tiempos de archivo

Este artículo debería documentar la semántica con respecto a los tiempos de creación/modificación/acceso de archivos.

Tiempo de creación: si el archivo de destino ya existe, su tiempo de creación se preserva, de lo contrario se establece a la hora actual del sistema.
Hora de la última modificación: se copia siempre de la hora de modificación del archivo de origen.
Hora de último acceso: siempre se ajusta a la hora actual del sistema.

4
Advertisement
4
4
2011-07-26 15:54:51 +0000
Advertisement

(http://www.grigsoft.com/wndsync.htm) 3.5 mantiene 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 sin problemas, además de Robocopy, y he probado muchos. Sin embargo, hay que tener cuidado, ya que puede producir archivos corruptos con archivos de origen descargados con software como FlashGet u Orbit Downloader (los archivos resultantes tienen el mismo tamaño, pero sólo se copian 25kB - el resto se llena de ceros). Le pregunté al creador del software si podía averiguar por qué, pero no tenía ni idea; supongo que tiene que ver con que ese software descarga los archivos en paquetes pequeños (para optimizar la velocidad) y con que mi partición de datos está enormemente fragmentada.

Robocopy XP026 está efectivamente incluido en Windows Vista, pero funciona en Windows XP. Busca “Robocopy XP026”, o puedo enviar el archivo aquí, ya que no es muy fácil de encontrar. O puedes instalar Robocopy GUI y luego buscar el archivo robocopy.exe en la carpeta System32, para poder usarlo desde la línea de comandos. El archivo que tengo es de 208kB y el número de versión es 5.1.2600.26.

Sin embargo, parece que hay un error con el “modo de copia de seguridad”:

http://msmvps.com/blogs/martinzugec/archive/2008/03/03/ugly-bug-in-robocopy-ignoring-security-on-file-level.aspx

Robocopy versión XP027 aparentemente ya no tiene este error pero no funciona en Windows XP.

3
3
3
2010-06-01 18:32:19 +0000

RoboCopy debería ser capaz de hacerlo con el interruptor COPYALL. Puede obtener la versión GUI de Microsoft Technet .

1
Advertisement
1
1
2014-10-19 01:19:44 +0000
Advertisement

La forma más sencilla para mí, hasta ahora, es el método “enviar a”. No necesita ninguna aplicación externa. Según mi experiencia, conserva todos los atributos del archivo original.

El método que utilizaba antes, era el de compresión/carpeta zip. Aunque este seguramente tardará más ya que los archivos no sólo 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

Añade un acceso directo a la carpeta donde quieres que se copien, y el elemento aparecerá en tu menú sendto cuando hagas clic con el botón derecho en un archivo que quieras copiar.

1
1
1
2012-12-06 02:51:42 +0000

FastCopy puede hacer esto y es gratis.

1
Advertisement
1
1
2013-08-19 19:37:45 +0000
Advertisement
xcopy *.* C:\temp\Pics /c /d /e /h /i /k /q /r /s /x /y

No estoy seguro de qué interruptor mantiene la fecha del archivo, pero esto funciona. Luego cierro el directorio C:\temp\Pics que también mantiene las fechas de los archivos como se mencionó anteriormente.

0
0
0
2012-10-14 14:50:02 +0000

Es sencillo mover carpetas y directorios y seguir conservando la fecha de creación. Simplemente mantenga pulsada la tecla Shift y arrastre la carpeta a la nueva ubicación (comando mover). La fecha de modificación será la actual, pero la fecha de creación mantendrá la fecha original.

0
0
0
2014-05-02 08:34:44 +0000

Esto lo consigo con

rsync -avu –modify-window=3602 source_directory/ target_directory/

(esto se utiliza realmente como una herramienta de sincronización de un directorio a otro espejo y la opción de timewindow es para evitar problemas cuando los sistemas windows mueven los relojes 1 hora para el ahorro de luz del día etc.

en un entorno cygwin dentro de windows o en una máquina virtual de linux dentro de windows con unidades de windows montadas (por ejemplo, con virtualbox)

NB cygwin y virtualbox son ambos gratuitos y permiten tener en mayor o menor medida la funcionalidad de linux en windows - ambos requieren un poco de configuración - particularmente virtualbox, pero tienen muchas ventajas….

Mi propio problema era que los archivos tenían la hora correcta pero los directorios no. rsync ha arreglado las fechas de los directorios así como las de los archivos.

0
0
0
2014-01-01 07:59:10 +0000

xcopy funciona bien para esto. Sólo hay que especificar la bandera /k para copiar los 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 está incluido en todas las versiones de Windows desde Windows 95 hasta Windows 8.

0
0
0
2014-08-12 14:57:58 +0000

Este comando copia la misma marca de tiempo para los archivos. Tenga en cuenta que no hace exactamente la misma marca de tiempo para las carpetas mismas. Observe también que he colocado comillas entre el origen (Temp1) y el destino (Temp2). Esto se hace en caso de que haya espacios en las rutas. Yo no tengo espacios pero pensé que debía incluirlo para el peor de los casos.

robocopy /E /copy:DAT "C:\Temp1" "c:\Temp2"

Para mantener las marcas de tiempo iguales para las carpetas también:

robocopy /E /copy:DAT /dcopy:DAT “C:\Temp1” “c:\Temp2”

0
0
0
2013-02-11 13:33:03 +0000

Una forma sencilla de mover carpetas y preservar la fecha y hora de creación es utilizar estas utilidades http://lantechsoft.com/data-copy.html

Otra en la que puede preservar las fechas mientras se copian los archivos. http://technocomsolutions.com/data-copy-tool.html

Advertisement

Preguntas relacionadas

3
19
10
28
2
Advertisement
Advertisement