0 votos

¿Cómo leer una clave anidada con 'defaults'?

Puedo leer preferencias de un dominio, y puedo leer una clave única en profundidad, por ejemplo:

defaults read com.apple.Terminal "Window Settings"

Sin embargo, no puedo desreferenciar una clave más profunda que la profundidad=1 con el comando defaults. Por ejemplo, quiero leer el Basic bajo Window Settings. Esperaría poder hacer algo así:

defaults read com.apple.Terminal "Window Settings" Basic

Parece que defaults solo funciona con una profundidad fija:

El par dominio/predeterminado (com.apple.Terminal, Basic) no existe.

Pero seguramente puedo usarlo para manipular diccionarios, ¿verdad? ¿Qué utilidades están disponibles?

0voto

gor Puntos 11

defaults no hace lo que quieres. Para eso, puedes usar plutil - Property List Util. Lee completamente la página del manual para entender qué puede hacer. Te proporcionaré un punto de partida:

Para verificar claves anidadas en el plist del Terminal, puedes decir algo así:

plutil -extract "Window Settings.Basic.CursorColor" xml1 -o - ~/Library/Preferences/com.apple.Terminal.plist

Puede que notes que hay una opción para producir json, lo cual parece agradable. Pero los plist pueden usar datos binarios (codificados en base64, por supuesto). Y de alguna manera la salida json no funciona bien con eso.

De todos modos, plutil quiere trabajar con archivos completos así que no puedes editar una sola clave. Puedes hacerlo manualmente con Xcode que proporciona una interfaz gráfica agradable para editar plists. O puedes usar PlistBuddy. Aquí tienes un tutorial. https://fgimian.github.io/blog/2015/06/27/a-simple-plistbuddy-tutorial/

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