Tengo que copiar la estructura de directorios de un disco NTFS local a otro (Windows 7+) y preservar los enlaces duros que existen dentro de esta estructura de directorios.
Una solución aceptable sería reemplazar los enlaces duros con enlaces simbólicos (relativos) antes de la copia, pero tampoco estoy seguro de si es factible.
¿Cuáles son las opciones aquí?
ntfs
symbolic-link
hardlink
Estus Flask
fuente
fuente
Respuestas:
Herramienta para copiar enlaces duros en particiones de disco separadas
LN - Enlaces de línea de comandos
Mando:
ln --copy x:\dir\dir2 y:\dir\newdir
Recurso: http://schinagl.priv.at/nt/ln/ln.html
Descargar: http://schinagl.priv.at/nt/ln/ln.html#contact
Nota: Parece que acaba de descargar este software para la arquitectura de su CPU desde el archivo ZIP, así como desde vcredist (Visual C ++ Redistributable) e instálelo. Luego simplemente extraiga los archivos y carpetas del archivo ZIP a una nueva carpeta en algún lugar (.eg
C:\Temp
). En la línea de comandos, simplemente vaya a esa carpeta [directorio] y luego ejecute los comandos necesarios para las ubicaciones de su unidad como se muestra en el ejemplo anterior. Ejecutarln --help
muestra detalles de ayuda, pero se supone que el ejemplo de comando anterior debe copiarhard links
según la documentación.Link Shell Extension
Recurso: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Descargar: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact
Secciones o funciones de interés con este software
Smart Mirror
Clone
Smart Copy
ln - Enlaces de línea de comandos - Descargar captura de pantalla
Link Shell Extension - Descargar captura de pantalla
NOTAS INTERESANTES
Parece que
hard links
están bloqueados en la misma partición de disco para sus punteros de archivo, etc. y no se pueden usar en varias particiones. Además,hard links
en NTFS, las particiones son parte de losMaster File Table
registros (o atributos para los recuentos al menos), por lo que copiarlos en un disco existente que tenga el suyoMFT
sería un problema si no clona byte por byte en el nivel de partición al menos.fuente
La utilidad de línea de comandos
rsync
hace lo que le pides.Suponiendo que sus datos antiguos están en la ubicación A, y sus datos nuevos están en B, haga lo siguiente:
Citando del manual de rsync:
¿Cómo obtenerlo
rsync
y usarlo? Hay 2 alternativas fáciles para Windows:Primera alternativa: uso
cygwin
. Es un software de Windows. Instálelo, agreguersync
en el paso de selección de paquetes. Deje todo lo demás predeterminado. Después de instalarlo, use su shell para escribir el comando. Si lo desea, puede usar la ruta completa, en/usr/bin/rsync
lugar de solorsync
. Si desea acceder a las unidades de Windows, use rutas como "/ cygwin / drives" y siempre trate de completar automáticamente usando TAB.Segunda alternativa: si se trata de una computadora de escritorio, use una distribución GNU / Linux en vivo. Prepare una imagen USB en vivo, inicie desde ella, monte los discos deseados e invoque rsync. Si la imagen en vivo no tiene
rsync
, instálela. (apt-get install rsync
en Debian y sus derivados). Si aún no tiene experiencia con el ecosistema de Linux, cygwin podría ser más fácil.fuente
A
es un directorio, entoncesB
debería ser el nombre que ese directorio tomará en el destino (a diferencia de,cp
por ejemplo, donde el último argumento es el directorio padre)ln
que se muestra en otra respuesta. Cygwinrsync
de esta respuesta puede funcionar también, como mencioné.ln --copy
. En cuanto a la GUI, supongo que 'Smart Copy' es lo que estás buscando.Intenta buscar ventanas en rsync. Dado que rsync tiene una opción para preservar los enlaces duros (flag -H, --hard-links), debería hacer el trabajo (fuente: https://download.samba.org/pub/rsync/rsync.html ).
Puede intentar buscar algo como cwRsync: https://www.itefix.net/cwrsync# este tiene GUI.
fuente
Muy tarde para la fiesta aquí.
Combatir el fuego con fuego. Como robocopy permitió el desorden, también usaremos robocopy para limpiarlo.
Cree un directorio vacío y luego use robocopy para copiar el directorio vacío al destino (que tiene las rutas súper largas) usando la opción de purga.
Eso debería funcionar.
fuente