1 votos

Tratando de leer los valores xattr en varios archivos

Al intentar leer todos los valores de los atributos extendidos en un solo archivo, si hago

xattr -l  | while read ATTR; do
  xattr -p $ATTR 
done

Obtengo lo que espero. Pero si intento hacerlo con varios archivos con

for FILE in *; do
  echo "=== $FILE ==="
  xattr -l $FILE | while read ATTR; do
    xattr -p $ATTR $FILE
  done
done

para algunos archivos solo obtengo el nombre de archivo (supongo que no hay xattr);
para algunos archivos obtengo

=== 154128428159.JPEG ===
xattr: [Errno 22] Argumento inválido: '154128428159.JPEG'
xattr: 154128428159.JPEG: No existe xattr: com.apple.macl:
xattr: [Errno 22] Argumento inválido: '154128428159.JPEG'
No hay suficientes argumentos para la opción -p. Se esperaban al menos 2 pero se recibió 1

y para otros archivos,

xattr: [Errno 22] Argumento inválido: 'record-image_-7.jpg'
xattr: record-image_-7.jpg: No existe xattr: com.apple.macl:
xattr: [Errno 63] Nombre de archivo demasiado largo: 'record-image_-7.jpg'

Intenté poner unset ATTR o ATTR="" en el bucle externo, pero obtuve los mismos resultados.

Esto sucede tanto con zsh como con bash en macOS 13.5.2

0voto

WGroleau Puntos 255

El formato de la página de manual me confundió y cuando Gairfowl explicó que -l da los valores, lo probé sin opciones pero (oops) el archivo en el que lo probé no tenía atributos.

Así que en realidad, necesito un bucle, pero es

for ATTR in $(xattr "$FILE"); do
  xattr -pl $ATTR "$FILE"
done

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