Preguntas frecuentes: Mecanismo de etiquetas de macOS (Finder) y explicación de la implementación de esta aplicación
1. ¿Qué son las etiquetas del Finder en macOS y dónde se almacenan?
Las etiquetas del Finder forman parte de los metadatos del archivo; no se escriben en el contenido del archivo, sino en sus atributos extendidos (xattr). La clave principal es:
com.apple.metadata:_kMDItemUserTags
El contenido es un plist binario, que básicamente representa un “array de etiquetas”. Cada elemento de la etiqueta incluye el nombre de la etiqueta y un número de color, cuyo rango va de 0 a 7 (0: sin color; 1: gris; 2: verde; 3: morado; 4: azul; 5: amarillo; 6: rojo; 7: naranja).
Por lo tanto:
- “Etiquetar un archivo” consiste, en esencia, en “escribir los metadatos de las etiquetas en los atributos extendidos”;
- Esto es independiente de si pueden ser indexados por Spotlight para su búsqueda.
2. Acerca del antiguo atributo extendido com.apple.FinderInfo
com.apple.FinderInfo es uno de los mecanismos más antiguos de macOS/Finder:
- Mecanismo anterior: Solo podía representar un solo color y no incluía el nombre de la etiqueta.
- Aún puede escribirse en sistemas modernos: Aunque actualmente prevalece
_kMDItemUserTags, el Finder aún puede escribir/actualizar simultáneamentecom.apple.FinderInfo(para garantizar compatibilidad con sistemas anteriores).
Más específicamente:
- Solo cuando el nombre de una etiqueta está presente en la lista de etiquetas personalizadas del Finder, el Finder puede escribir/actualizar la información de color en
com.apple.FinderInfo; - Cuando hay múltiples colores asignados, se utiliza el color correspondiente a la última etiqueta válida en la lista.
3. Problema de multilingüismo: ¿Por qué el mismo color aparece como “diferentes etiquetas” en sistemas con idiomas distintos?
macOS escribe nombres de etiquetas localizados:
- En sistemas en inglés se guarda
Red. - En sistemas en chino se guarda
红色.
Para el sistema, estas son dos etiquetas diferentes. Esta aplicación obtiene los nombres predeterminados de las etiquetas de color mediante las API del sistema; por lo tanto, el resultado depende del entorno lingüístico del sistema (“Preferencias del Sistema → General → Idioma y región / Idioma de la interfaz”: si está configurado en “Automático”, seguirá el idioma actual del sistema). Si el idioma del sistema no coincide con el idioma de la aplicación, podrían aparecer nombres de etiquetas inconsistentes.
4. ¿Por qué es importante que la configuración de la aplicación coincida con la configuración de etiquetas del Finder?
- Debido a las limitaciones de macOS, las aplicaciones generalmente no pueden leer completamente la lista de configuración “nombre de etiqueta ↔ color” del Finder.
- Al leer las etiquetas, las API del sistema suelen proporcionar únicamente el nombre de la etiqueta, sin indicar directamente el color; si la aplicación no tiene configurado el color correspondiente a ese nombre, el color mostrado podría ser incorrecto.
- Al escribir etiquetas, las API del sistema también suelen pasar únicamente el nombre de la etiqueta, y el color final queda determinado por la definición que el Finder tenga para ese nombre.
5. ¿Cómo se guardan los metadatos de las etiquetas en diferentes discos o ubicaciones de red? (APFS / AppleDouble / NTFS ADS)
5.1 APFS (disco interno): almacenamiento nativo de xattr (el más confiable)
APFS admite nativamente los atributos extendidos, por lo que los metadatos de las etiquetas se almacenan directamente en los xattr del propio archivo.
5.2 Ubicaciones que no admiten o admiten parcialmente xattr: AppleDouble (._nombre_del_archivo_original)
Cuando el sistema de archivos o el protocolo de destino no puede guardar de forma fiable los xattr (lo cual ocurre comúnmente en FAT32, exFAT y unidades de red: SMB/WebDAV/NFS, entre otros), macOS guarda los metadatos en archivos adjuntos de tipo AppleDouble:
._nombre_del_archivo_original(por ejemplo,photo.jpgcorresponde a._photo.jpg).
Visibilidad:
- El Finder nunca los muestra (incluso si se activa la opción de mostrar archivos ocultos);
- Se pueden ver con el comando
ls -laen la terminal; - En Windows, si se habilita la visualización de archivos ocultos, sí serán visibles (por lo tanto, se observarán muchos pequeños archivos con el prefijo
._).
Importante: (una causa común de “pérdida” de etiquetas):
- Si en Windows o con algunas herramientas mueves/copias un archivo solo el archivo original, dejando los archivos
._en su ubicación anterior, las etiquetas parecerán “desaparecer” en la nueva ubicación. - Sin embargo, si posteriormente trasladas también los archivos
._correspondientes, las etiquetas normalmente podrán recuperarse.
5.3 Conexión SMB a NTFS: posibilidad de utilizar ADS (Streams de datos alternativos)
Cuando se accede a un sistema NTFS a través de SMB y se cumplen ciertas condiciones del servidor o del protocolo, macOS podría no generar archivos ._, sino escribir los metadatos en los ADS (Alternate Data Streams, streams de datos alternativos) de NTFS:
- Los ADS son una característica de NTFS: además de los “datos principales”, un archivo puede contener varios “streams de datos adicionales invisibles” que se utilizan para almacenar metadatos extra.
- Ventaja: al mover o copiar archivos dentro de NTFS, estos metadatos suelen conservarse junto con el archivo, y resulta relativamente “limpio” para los usuarios de Windows (ya que no genera archivos
._). - Sin embargo, ten en cuenta lo siguiente:
- Cuando mueves o copias un archivo desde NTFS a FAT32 o exFAT, el sistema de archivos de destino no admite ADS ni otros tipos de metadatos; Windows suele mostrar un mensaje similar a:
“¿Está seguro de que desea copiar el archivo sin copiar sus propiedades?” Esto indica que dichos metadatos adicionales serán descartados; después de la copia, es posible que las etiquetas no se conserven.
6. ¿Cómo puedo ver los xattr de las etiquetas de un archivo?
El comando de línea xattr no es conveniente: No admite procesar ni mostrar atributos plist binarios como com.apple.metadata:_kMDItemUserTags; para obtener una salida correcta, es necesario usar la opción -px para mostrarlos en formato hexadecimal.
Se recomienda utilizar herramientas de terceros:
- xattred: Permite ver e inspeccionar de forma intuitiva xattr como
_kMDItemUserTags,com.apple.FinderInfo, entre otros.
7. ¿Qué relación existe entre Spotlight y las etiquetas? ¿Dependen las etiquetas de Spotlight?
- Las etiquetas en sí no dependen de Spotlight: Una vez que se aplica una etiqueta a un archivo, ya está escrita en sus xattr; el hecho de que sea indexada o no no afecta su “existencia”.
- Spotlight es simplemente un motor de indexación: Se encarga de crear índices basados en metadatos como los nombres de las etiquetas, para realizar búsquedas a nivel del sistema.
- Normalmente, macOS mantiene automáticamente los índices después de operaciones como mover o renombrar archivos; sin embargo, discos externos, unidades de red y carpetas incluidas en la “privacidad de búsqueda” pueden no ser indexadas por Spotlight.
8. ¿Qué hace el “índice mejorado” de esta aplicación?
Cuando Spotlight no puede cubrir ciertas áreas (discos externos, unidades de red, carpetas excluidas de la privacidad de búsqueda, etc.), esta aplicación ofrece un índice mejorado:
- Mientras navegas por las carpetas en la aplicación, ésta registra la información de las etiquetas de los archivos contenidos en esa carpeta;
- Cuando seleccionas ver todos los archivos con una determinada etiqueta en el árbol de directorios, la aplicación complementa los resultados de Spotlight con los archivos encontrados mediante el índice mejorado;
- Puedes actualizar el índice de etiquetas de un directorio haciendo clic derecho sobre él y eligiendo “Escanear y actualizar”.