Problemas con archivos y carpetas con nombres que contienen diéresis

5

Acabo de notar algunos problemas al explorar mi colección de música externa con el Finder, faltan algunas carpetas de artistas.

Al ir a iTerm y ls ing la carpeta obtuve esto como informe inicial:

ls Music
ls: Maná: No such file or directory
ls: Márta Sebestyén: No such file or directory
ls: Motörhead: No such file or directory
ls: Zoë Keating: No such file or directory

Tenga en cuenta que los nombres de los artistas utilizan diéresis y acentos agudos dobles.

Esta es una carpeta en una caja NAS (ReadyNAS 204) a través de smb, también tengo una copia de seguridad del NAS con acceso a Ubuntu a través de CIFS.

Al usar Finder en OS X El Capitan, ni el NAS ni la copia de seguridad muestran estas carpetas. Sin embargo, al usar Yosemite puedo ver la carpeta Artistas pero faltan los álbumes.

Al iniciar sesión directamente en los cuadros, todos los archivos parecen estar intactos y SONOS aún puede reproducirlos.

Ha cambiado algo en OS X, utilicé max para extraer estos de los CD (Snow Leopard), así que tuve que ser capaz de manejar los archivos en algún momento‽

NB:‽ es un interrobang

Actualizar con un poco más de información

Al utilizar rsync desde Mac para copiar música en una unidad USB (formato OS X Extended) veo cosas como:

rsync -av --iconv=utf8-mac,utf8 /Volumes/share/Music/ /Volumes/usbdisk/Music/

file has vanished: "/Volumes/share/Music/.../Márta Sebestyén"
file has vanished: "/Volumes/share/Music/.../Maná"
file has vanished: "/Volumes/share/Music/.../Zoë Keating"
file has vanished: "/Volumes/share/Music/.../Rammstein-2005-Rosenrot-07-Zerstören.flac"

ssh'ing on Ubuntu server y usando convmv como se describe aquí :

cd /mnt/Music
convmv -r -f ISO-8859-1 -t UTF-8 . 

Devuelve:

Starting a dry run without changes...
Skipping, already UTF-8: ./Márta Sebestyén
Skipping, already UTF-8: ./Maná
Skipping, already UTF-8: ./Michael Bublé
Skipping, already UTF-8: ./Zoë Keating
Skipping, already UTF-8: ./Rammstein/1999-Live aus Berlin/Rammstein-1999-Live aus Berlin-10-Bück dich.flac
Skipping, already UTF-8: ./Rammstein/1999-Live aus Berlin/Rammstein-1999-Live aus Berlin-03-Weißes Fleisch.flac
No changes to your files done. Use --notest to finally rename the files.

Parece que los archivos principales que tienen problemas ya son utf-8, pero tenga en cuenta que el archivo "Rammstein-2005-Rosenrot-07-Zerstören.flac" con el que tuvo problemas rsync no aparece en el informe anterior.

También usé brew para instalar la última versión de rsync 3+ en lugar de la versión 2.6 que se usa por defecto.

brew tap homebrew/dupes
brew install rsync

Y luego edite / private / etc / path para poner / usr / local / bin antes de / usr / bin

Probando AFP

Habilitando AFP en Ready NAS (OS 6.4.2), bueno, esto fue un poco extraño para mí. La estructura es Artist/Album/Tracks.flac . Los artistas están ahí, el álbum estaba allí, expande el álbum para ver las pistas que desaparecieron de la carpeta Artistas.

ReadyNASsmb.conf

[global]doscharset=CP1252unixcharset=UTF-8

Informaciónrelacionada

¿Las carpetas no aparecen en el Finder?
CIFS & Problemas de MAC con caracteres especiales en nombres de carpetas .

    
pregunta Munkymorgy 04.04.2016 - 17:56

1 respuesta

1

macOS y Linux utilizan diferentes estilos UTF-8. convmv puede convertir entre esos dos con las opciones --nfc / --nfd. En su NAS basado en Linux haga esto:

convmv -r -f UTF-8 -t UTF-8 --nfc  .

Desde la página de manual de convmv:

  

HFS + en OS X / Darwin   Linux y (¿la mayoría?) Otros sistemas operativos similares a Unix utilizan la llamada forma de normalización C (NFC) para su codificación UTF-8 de forma predeterminada, pero no lo hacen cumplir. HFS + en el sistema operativo Macintosh aplica la forma D de normalización (NFD), donde algunos caracteres se codifican de una manera diferente. En OS X no es posible crear nombres de archivos NFC UTF-8 porque esto se evita en la capa del sistema de archivos. En HFS + los nombres de archivo se almacenan internamente en UTF-16 y cuando se vuelven a convertir a UTF-8 (debido a que el sistema operativo basado en Unix no puede tratar con UTF-16 directamente), se crea NFD por cualquier motivo. Consulte enlace para ver las fallas. Creo que fue una muy mala idea y rompe muchas cosas bajo OS X que esperan un sistema normal que cumpla con POSIX. En cualquier otro lugar, convmv puede convertir archivos de NFC a NFD o viceversa, lo que facilita mucho la interoperabilidad con dichos sistemas.

Por cierto: esto solo sucede cuando transfieres tus archivos desde una partición HFS +. APFS ya no impone NFD.

    
respondido por el Markus Ziermann 23.11.2018 - 11:13

Lea otras preguntas en las etiquetas