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 algún atributo con nombre para una XXX.app determinada?
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 algún atributo con nombre para una XXX.app determinada?
El siguiente comando xttar
hace que se muestren los nombres de los atributos y los valores correspondientes, si existen.
xattr -l file
También puede usar el comando ls
:
ls -@ file
Dicho esto, el mensaje ... No such xattr: com.apple.quarantine
no es un mensaje fatal, lo que significa que no hay necesidad real de hacerlo condicional, y si su objetivo es eliminar el com.apple.quarantine
atributo extendido de una muchos archivos a la vez en un directorio dado, luego cd
al directorio de destino y use el siguiente comando :
for f in *; do xattr -dr com.apple.quarantine "$f" 2>/dev/null; done
La frase de una línea anterior eliminará el com.apple.quarantine
atributo extendido de cada archivo que lo tenga y actuará como si todo el contenido del directorio también se especificara (de modo que cada archivo en el se actúa sobre el árbol de directorios), esa es la opción -r
, mientras que no muestra errores para los archivos que no tienen el atributo extendido . (Eso es lo que hace 2>/dev/null
).
No hay una manera directa de probar la existencia de un atributo extendido específico. En su caso usted podría, con
file=/path/to/file
attr=attribute
haz algo como
if [[ $(xattr "$file") = *$attr* ]]; then
xattr -d $attr "$file"
fi
o, como una sola línea
[[ $(xattr "$file") = *$attr* ]] && xattr -d $attr "$file"
Lea otras preguntas en las etiquetas macos extended-attributes