Estoy usando un script Bash personalizado que se ejecuta en una máquina Linux para duplicar en masa unidades USB con formato FAT32.
Necesito preservar los atributos del archivo de Windows como "oculto".
Yo uso rsync
(o dd
con find
y mkdir
en una versión más nueva para forzar la sincronización de E / S para una mejor estabilidad y un uso óptimo del ancho de banda).
Intenté ciegamente -X
y -A
cambié por rsync
, que se dice que conservan algunos atributos de archivo, pero no parecen funcionar para los atributos de archivo de Windows.
¿Hay alguna forma de leer y escribir atributos de archivos de Windows en un entorno Linux?
Podría aplicarlos después de copiar si no hay una manera más fácil.
No quiero dd
un sistema de archivos fuente completo, porque eso no será optimizado, especialmente cuando necesite escribir cientos de unidades. A veces, las unidades tienen una capacidad de 16 GB y solo unos pocos GB de archivos en ellas, y un tonto dd
copiaría los 16 GB, lo que llevaría demasiado tiempo para que esto funcione en la producción.
He buscado en la web, pero parece que los atributos extendidos de Linux no tienen nada que ver con los atributos de los archivos de Windows, y no he encontrado ninguna forma de leer y escribir esta información (o simplemente copiarla con los archivos).
rsync
o una operación manualfind
/mkdir
/dd
que uso en este momento.fatattr
para una implementación de una herramienta usando estos.Respuestas:
Puedo pensar en un par de formas de manejar esto.
El primero es usar Mtools para copiar los archivos. Para que esto funcione, necesitaría definir "unidades" (por ejemplo, A: para la unidad de origen, B: para el destino), entonces debería poder copiar todo, preservar los atributos y las marcas de tiempo, utilizando
(no probado)
El segundo es procesar los atributos usando
fatattr
(que está disponible en la mayoría de las distribuciones). Maneja los sistemas de archivos montados, por lo que debe copiar sus sistemas de archivos de la misma manera que lo hace actualmente, luego usarlosfatattr
para enumerar todos los atributos FAT de todos los archivos de origen y analizarlos para indicarfatattr
que establezca los atributos adecuadamente en los archivos de destino .fuente
mcopy
, se bloqueó al intentar copiar la carpeta "Información del volumen del sistema", lo que provocó un error de GCC "stack smashing detect". Así que intentaré usarlofatattr
.