4 votos

¿Cómo verificar si existe un atributo extendido?

Cuando se ejecuta

  xattr -d com.apple.quarantine /Applications/XXX.app
 

a veces me sale

  xattr: /Applications/XXX.app: No such xattr: com.apple.quarantine
 

¿Cómo se verifica si existe un atributo con nombre para una XXX.app determinada?

5voto

user3439894 Puntos 5883

El siguiente xttar comando hace que tanto los nombres de los atributos y los valores correspondientes se muestran, si existe alguno.

xattr -l file

También puede utilizar el ls comando:

ls -@ file

Dicho esto, el ... No such xattr: com.apple.quarantine mensaje es un no-fatal mensaje, lo que significa que no hay necesidad real de hacer es condicional, y si su objetivo es eliminar la com.apple.quarantine de atributos extendidos de un lote de archivos a la vez en un determinado directorio, a continuación, cd a la meta de directorio y use el siguiente comando:

for f in *; do xattr -dr com.apple.quarantine "$f" 2>/dev/null; done

El anterior one-liner se elimine de la com.apple.quarantine de atributo extendido fuera de todos los archivos que tiene y actuar como si todo el contenido del directorio de forma recursiva también fueron especificados (de modo que cada archivo en el árbol de directorios se actúa), es la -r opción, aunque no muestra errores para los archivos que no tienen el objetivo de atributos extendidos. (Que es lo que el 2>/dev/null .)

1voto

No hay una manera directa de probar la existencia de un atributo extendido específico. En tu caso podrías, con

 file=/path/to/file
attr=attribute
 

hacer algo como

 if [[ $(xattr "$file") = *$attr* ]]; then
    xattr -d $attr "$file"
fi
 

o, como un trazador de líneas

 [[ $(xattr "$file") = *$attr* ]] && xattr -d $attr "$file"
 

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