1 votos

¿Dónde se guardan los atributos ampliados de los archivos?

Parece una pregunta obvia, pero por alguna razón no encuentro respuesta. Al parecer, acabo de descubrir una función muy conocida de macOS: los atributos extendidos de los archivos.

Contexto: Cuando descargo un archivo, veo que Finder muestra "De dónde" para un archivo JPG descargado al consultar las propiedades del archivo. Sin embargo, una vez que he utilizado exiftool para añadir un atributo XMP/IPTC (es decir, algo diferente), el "De dónde" desaparece. Entiendo que exiftools edita las etiquetas EXIF/XMP/IPTC, mientras que "de dónde viene" es el atributo extendido. Sin embargo, no entiendo por qué exiftool tiene un efecto sobre ella.

Me pregunto dónde se almacena este atributo. No me importa que esté presente o ausente, pero quiero evitar la modificación del archivo en la medida de lo posible (por razones de conservación de archivos), especialmente la modificación incontrolada. Entonces, ¿se almacena en el archivo, y exiftool lo borra aunque yo no se lo haya pedido, o se almacena en algún otro lugar del sistema de archivos, y en ese sentido su desaparición no indica la modificación del archivo?

4voto

Jose Chavez Puntos 645

Los atributos extendidos se almacenan por separado en el sistema de archivos (como APFS o HFS+).

Esto significa que los atributos extendidos no se almacenan dentro de los datos del archivo principal, por lo que no se produce ninguna modificación del archivo al añadir, eliminar o editar atributos extendidos. De hecho, puede añadir atributos extendidos a otros objetos del sistema de ficheros además de a ficheros, por ejemplo, directorios y enlaces simbólicos.

En MacOS puede manipular los atributos extendidos desde el Terminal utilizando el comando xattr mando. A continuación demostraré de forma sencilla que los atributos extendidos no se almacenan dentro de los datos del archivo:

Primero encenderemos Terminal.app y ejecute los siguientes comandos para crear un archivo de datos de muestra llamado test que sólo contenga la palabra "TEST" y calcular una suma de comprobación MD5 de su contenido:

echo "TEST" > test
md5 test

Obtendrás el siguiente resultado:

MD5 (test) = 2debfdcf79f03e4a65a667d21ef9de14

Ahora bien, si cambias el contenido del archivo de (casi) cualquier forma, obtendrás un valor de suma de comprobación MD5 diferente.

Ahora añadiremos un atributo extendido llamado "test.attribute" con el valor "value" al archivo:

xattr -w test.attribute value test

Podemos confirmar que el atributo extendido se almacena en el sistema de archivos de esta manera:

xattr -l test

Esto leerá que el archivo "test" tiene un atributo llamado test.attribute con el valor "value".

Volver a ejecutar md5 para obtener la suma de comprobación del contenido del archivo:

md5 test

Verás que obtienes exactamente la misma suma de comprobación MD5 que antes.

Históricamente, los atributos extendidos se añadieron originalmente a MacOS como una característica del sistema de archivos en HFS+ con el lanzamiento de Mac OS X 10.4 Tiger en 2005. Incluso mucho antes, Mac OS X ya disponía de funciones similares que permitían almacenar datos adicionales junto a los archivos, por ejemplo en los denominados "Named Forks" y "Resource Forks". Estas funciones se remontan a los años ochenta.

En los MacOS actuales, APFS soporta de forma nativa los atributos extendidos. Si nos fijamos en el documentación de referencia para APFS encontrarás que especifica un tipo de objeto APFS_TYPE_XATTR con un j_xattr_key que contiene básicamente el nombre del atributo (por ejemplo, "com.apple.quarantine"), y una estructura j_xattr_val que contiene básicamente el valor del atributo.

Además del valor del atributo, el atributo j_xattr_val también especifica exactamente dónde se almacenan realmente los datos de atributos en el sistema de archivos. Puede almacenarse en un flujo de datos (en extensiones para atributos grandes), incrustarse directamente en el registro del sistema de ficheros (para atributos pequeños), o ser gestionado directamente por el sistema de ficheros (es decir, un atributo específico que tiene una estructura dedicada para él en el sistema de ficheros - más prominentemente utilizado para enlaces simbólicos y firmes).

1voto

neophytte Puntos 13

Los datos EXIF se almacenan dentro del JPG, si quieres modificar otros atributos EXIF, puedes mantener la fecha y hora originales con esto:

"-filemodifydate<datetimeoriginal"

¡HTH!

Fuentes:

https://www.phototraces.com/b/what-is-exif-data/

https://exiftool.org/forum/index.php?topic=1666.0

-2voto

MatthewRock Puntos 309

Estos atributos se almacenan totalmente separados del propio archivo, en una sección especial del volumen del disco. Por lo tanto, añadir, eliminar o modificar los atributos extendidos no altera el archivo en modo alguno.

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