2 votos

¿Cómo puedo evitar que los datos se mezclen en los nombres de los archivos al copiarlos entre Linux y MacOS?

Cuando transportamos un sistema de archivos CMS y un volcado mysql vía rsync de un servidor Linux a otro servidor Linux, usamos un MacOS en el medio para almacenar los datos temporalmente. Después de que el CMS estaba en el otro servidor Linux, todos los archivos de imágenes estáticas estaban disponibles. Pero todos los nombres de archivos con diéresis en alemán no fueron encontrados por el CMS, aunque eran visibles y accesibles. Rápidamente nos dimos cuenta de que esto es exactamente lo que sucede:

Cuando creo un nombre de archivo con diéresis alemanas en Linux como este:

linux$ mkdir umlauttest
linux$ touch umlauttest/äöü

Y luego ir a un Mac y emitir allí un rsync para copiar el directorio a mi Mac...

mac$ rsync -a user@linux:umlauttest .

Y luego lo copio de mi Mac a Linux:

mac$ rsync -a umlauttest/. user@linux:umlauttest2

Entonces tengo un problema en mi Linux, porque el nombre del archivo está como roto.

linux$ diff umlauttest umlauttest2
Only in umlauttest2: äöü
Only in umlauttest: äöü

Eso es, porque MacOS está convirtiendo los caracteres del nombre de archivo en caracteres compuestos de Unicode, lo que es realmente algo que yo llamo "mangling meta data". Este comportamiento también surge al usar scp para copiar archivos.

¿Hay alguna manera de evitar que esto suceda?

2voto

Jose Chavez Puntos 645

Use el --iconv para que rsync especifique cómo se codifican los nombres de los archivos en los hosts locales y remotos - esto podría ayudarte a mantener los nombres de los archivos intactos.

Cuando copie del servidor de Linux al Mac añada lo siguiente al rsync comando:

--iconv=utf-8,utf-8-mac 

Cuando copie de la Mac al servidor de Linux use lo siguiente:

--iconv=utf-8-mac,utf-8 

Ten en cuenta que necesitas una versión relativamente nueva de rsync (>3.0) para tener el --iconv opción. Apple sólo suministra una versión antigua, así que tienes que ir a otro sitio, por ejemplo, un gestor de paquetes como Macports o Homebrew.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X