4 votos

¿Hay una longitud máxima de metadatos que pueden escribirse en un xattr comando?

¿Hay cualquier texto limitaciones de longitud para cuánto tiempo se puede poner texto al xattr? Tengo planes de poner mi código de AppleScript para archivos de script para que Spotlight puede encontrarlo. Utilizando el buscador de comentarios, no es una opción debido al volumen de los cambios que se va escribiendo.

do shell script "xattr -w com.apple.metadata:kmditemmusicalgenre " & source_code & " " & quoted form of script_path

4voto

Como bmike mencionado, xattr.h tiene una constante denominada XATTR_MAXSIZE que se establece en 64 MiB:

/* Maximum extended attribute size supported by VFS */
#define XATTR_MAXSIZE       (64 * 1024 * 1024)

VFS significa sistema de archivos virtual.

De http://en.wikipedia.org/wiki/Extended_file_attributes#Mac_OS_X:

Aunque el nombre de horquillas en HFS+ apoyo arbitrariamente grandes cantidades de datos a través de las extensiones, el sistema operativo soporte para atributos extendidos sólo soporta inline atributos, limitar su tamaño a la que puede caber dentro de un único B*-nodo del árbol.

No sé si es exacta o la forma de ver de que tamaño. Vas a correr en la máxima argumento de la longitud de la primera, aunque:

$ getconf ARG_MAX
262144
$ touch a.txt
$ xattr -w someattribute "$(dd if=/dev/random bs=140000 count=1)" a.txt
1+0 records in
1+0 records out
140000 bytes transferred in 0.011996 secs (11670527 bytes/sec)
xattr: [Errno 7] Argument list too long: 'a.txt'

Yo no podía entender por ningún modo para obtener la entrada de STDIN o cualquier otras soluciones para ello.

También puede utilizar el atributo personalizado nombres:

$ xattr -w com.apple.metadata:MyAttribute gfdylvyieo a.txt
$ mdls -n MyAttribute a.txt
MyAttribute = "gfdylvyieo"
$ mdfind gfdylvyieo
/private/tmp/a.txt

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