config ini env hcl plist terraform devops sysadmin file-extensions

Referencia de Formatos de Archivos de Configuración: INI, ENV, PLIST, HCL y más

¿Confundido por los diferentes archivos de configuración? Una guía completa de las extensiones .ini, .conf, .env, .properties, .plist, .hcl, .tf, .ovpn y .wg.

2026-04-11

Referencia de formatos de archivos de configuración: INI, ENV, PLIST, HCL y más

En el desarrollo de software y la administración de sistemas modernos, manejamos docenas de formatos de archivos de configuración diferentes. Si bien JSON, YAML y TOML son los favoritos actuales de la industria, muchas otras extensiones persisten en ecosistemas específicos como sistemas Linux, el registro de Windows, Apple macOS, Java e Infraestructura como Código (IaC).

Esta guía de referencia cubre las extensiones de archivos de configuración "heredadas" y especializadas más comunes que encontrará.


Tabla de referencia rápida: Formatos de archivos de configuración

Extensión Nombre completo Ecosistema Tipo de sintaxis
.ini, .conf, .cfg Inicialización / Configuración Linux, Windows, PHP, Python Clave-Valor / Secciones
.env Variables de entorno Dev Web (Node.js, Docker, Python) Clave=Valor
.properties Propiedades de Java Java, Spring, Android Clave=Valor (o XML)
.plist Lista de propiedades macOS, iOS, Apple XML o Binario
.hcl, .tf, .tfvars Lenguaje de configuración de HashiCorp Terraform, Nomad, Consul Lenguaje específico de dominio (DSL)
.ovpn, .wg Configuración de OpenVPN / WireGuard Redes, VPN Basado en directivas

1. Configuración del sistema y heredada (.ini, .conf, .cfg)

Estos son los "abuelos" de los archivos de configuración. Son simples, basados en texto y legibles por humanos.

  • Archivos INI: A menudo se usan en Windows y software antiguo. Usan [Sections] para agrupar pares clave-valor.
    [database]
    host = 127.0.0.1
    port = 5432
    
  • CONF / CFG: Se utilizan principalmente en directorios /etc/ de Linux (por ejemplo, nginx.conf, redis.conf). La sintaxis varía: algunos usan Clave-Valor simple, mientras que otros usan llaves o directivas personalizadas.

2. Variables de entorno (.env)

El archivo .env es un estándar en el desarrollo web moderno para almacenar "secretos" y configuraciones específicas del entorno (como URL de bases de datos o claves de API) que no deben confirmarse en Git.

  • Sintaxis: Formato CLAVE=VALOR extremadamente simple.
  • Mejor práctica: Nunca confirme .env al control de fuentes. Use un archivo .env.example en su lugar para mostrar las variables requeridas.

3. Empresa y Java (.properties)

Utilizado por la Máquina Virtual Java (JVM) durante décadas. Es similar a un archivo .env pero admite escapes más complejos e incluso se puede formatear como XML.

  • Uso común: application.properties en aplicaciones Spring Boot.
  • Sintaxis: database.url=jdbc:mysql://localhost:3306/db

4. El ecosistema Apple (.plist)

Las listas de propiedades (Property Lists) son el estándar para las aplicaciones de macOS e iOS. Almacenan las preferencias del usuario y los metadatos de la aplicación (como Info.plist).

  • Formatos: Se pueden almacenar como XML legibles por humanos o como archivos binarios optimizados.
  • Cómo verlos: Use el "Editor de listas de propiedades" en macOS o conviértalos a JSON utilizando la herramienta de línea de comandos plutil.

5. Infraestructura como código (.hcl, .tf, .tfvars)

HCL fue creado por HashiCorp para cerrar la brecha entre el YAML legible por humanos y el JSON legible por máquinas. Es el lenguaje principal de Terraform.

  • HCL: Altamente expresivo, admite comentarios, variables y funciones.
  • TF: Específicamente para definiciones de recursos de Terraform.
  • TFVARS: Se utiliza para pasar valores de variables a los planes de Terraform.

6. Redes y VPN (.ovpn, .wg)

Si alguna vez ha configurado una conexión segura, habrá visto estos:

  • OVPN: Un archivo complejo tipo script que contiene direcciones de servidor OpenVPN, información de puertos y, a menudo, certificados integrados (<ca>, <cert>, <key>).
  • WG: La configuración de WireGuard más simple. Utiliza un formato limpio de estilo INI para definir [Interface] y [Peer].

Herramientas para trabajar con archivos de configuración

  • Editores: VS Code, Sublime Text e IDE de JetBrains tienen complementos para casi todos los formatos enumerados anteriormente para proporcionar resaltado de sintaxis y validación.
  • Convertidores de CLI:
    • yq: Un procesador portátil de línea de comandos para YAML, JSON, XML, CSV y TOML (similar a jq).
    • plutil: Integrado en macOS para convertir archivos .plist.
    • terraform fmt: Para formatear archivos .tf y .hcl.

Preguntas comunes (FAQ)

P: ¿Puedo usar comentarios en un archivo .env?

R: La mayoría de los analizadores de .env (como dotenv en Node.js) admiten comentarios que comienzan con #. Sin embargo, es más seguro poner los comentarios en sus propias líneas en lugar de en la misma línea que el código.

P: ¿Cómo convierto un .plist binario a XML?

R: En macOS, puede ejecutar: plutil -convert xml1 filename.plist.

P: ¿Por qué mi archivo .ini tiene [corchetes]?

R: Los corchetes denotan una Sección. Le permiten agrupar configuraciones relacionadas, evitando colisiones de nombres (por ejemplo, tener un port bajo [http] y un port diferente bajo [ssh]).

P: ¿Es .hcl compatible con JSON?

R: ¡Sí! HCL está diseñado para ser totalmente compatible con JSON. De hecho, puede escribir sus archivos de Terraform en .tf.json si lo prefiere (aunque es menos legible para los humanos).


Herramientas relacionadas en Tool3M

  • Formateador JSON: Formatee y valide sus archivos de configuración JSON.
  • Conversor de YAML a JSON: Conozca la relación entre los formatos de datos comunes.