config ini env hcl plist terraform devops sysadmin file-extensions

Referência de Formatos de Arquivos de Configuração: INI, ENV, PLIST, HCL e mais

Confuso com os diferentes arquivos de configuração? Um guia completo das extensões .ini, .conf, .env, .properties, .plist, .hcl, .tf, .ovpn e .wg.

2026-04-11

Referência de formatos de arquivo de configuração: INI, ENV, PLIST, HCL e mais

No desenvolvimento de software e administração de sistemas modernos, lidamos com dezenas de diferentes formatos de arquivo de configuração. Embora JSON, YAML e TOML sejam os favoritos atuais da indústria, muitas outras extensões persistem em ecossistemas específicos, como sistemas Linux, registro do Windows, Apple macOS, Java e Infraestrutura como Código (IaC).

Este guia de referência cobre as extensões de arquivo de configuração "legadas" e especializadas mais comuns que você encontrará.


Tabela de referência rápida: Formatos de arquivo de configuração

Extensão Nome completo Ecossistema Tipo de sintaxe
.ini, .conf, .cfg Inicialização / Configuração Linux, Windows, PHP, Python Chave-Valor / Seções
.env Variáveis de ambiente Dev Web (Node.js, Docker, Python) Chave=Valor
.properties Propriedades Java Java, Spring, Android Chave=Valor (ou XML)
.plist Lista de propriedades macOS, iOS, Apple XML ou Binário
.hcl, .tf, .tfvars HashiCorp Configuration Language Terraform, Nomad, Consul Linguagem de Domínio Específico (DSL)
.ovpn, .wg Configuração OpenVPN / WireGuard Redes, VPN Baseado em diretivas

1. Configuração do sistema e legada (.ini, .conf, .cfg)

Estes são os "avôs" dos arquivos de configuração. Eles são simples, baseados em texto e legíveis por humanos.

  • Arquivos INI: Frequentemente usados no Windows e em softwares mais antigos. Eles usam [Seções] para agrupar pares chave-valor.
    [database]
    host = 127.0.0.1
    port = 5432
    
  • CONF / CFG: Usados principalmente em diretórios /etc/ do Linux (ex: nginx.conf, redis.conf). A sintaxe varia — alguns usam Chave-Valor simples, enquanto outros usam chaves ou diretivas personalizadas.

2. Variáveis de ambiente (.env)

O arquivo .env é um padrão no desenvolvimento web moderno para armazenar "segredos" e configurações específicas de ambiente (como URLs de banco de dados ou chaves de API) que não devem ser commitados no Git.

  • Sintaxe: Formato CHAVE=VALOR extremamente simples.
  • Melhor prática: Nunca commite o arquivo .env no controle de origem. Use um arquivo .env.example em seu lugar para mostrar as variáveis necessárias.

3. Enterprise e Java (.properties)

Usado pela Máquina Virtual Java (JVM) há décadas. É semelhante a um arquivo .env, mas suporta escapes mais complexos e pode até ser formatado como XML.

  • Uso comum: application.properties em aplicações Spring Boot.
  • Sintaxis: database.url=jdbc:mysql://localhost:3306/db

4. O ecossistema Apple (.plist)

As Listas de Propriedades (Property Lists) são o padrão para aplicativos macOS e iOS. Elas armazenam preferências do usuário e metadados do aplicativo (como Info.plist).

  • Formatos: Podem ser armazenados como XML legível por humanos ou como arquivos Binários otimizados.
  • Como visualizar: Use o "Editor de Lista de Propriedades" no macOS ou converta-os para JSON usando a ferramenta de linha de comando plutil.

5. Infraestrutura como Código (.hcl, .tf, .tfvars)

O HCL foi criado pela HashiCorp para preencher a lacuna entre o YAML legível por humanos e o JSON legível por máquinas. É a linguagem principal do Terraform.

  • HCL: Altamente expressivo, suportando comentários, variáveis e funções.
  • TF: Especificamente para definições de recursos do Terraform.
  • TFVARS: Usado para passar valores de variáveis para planos do Terraform.

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

Se você já configurou uma conexão segura, já viu estes:

  • OVPN: Um arquivo complexo semelhante a um script contendo endereços de servidor OpenVPN, informações de porta e, frequentemente, certificados incorporados (<ca>, <cert>, <key>).
  • WG: A configuração mais simples do WireGuard. Usa um formato limpo no estilo INI para definir [Interface] e [Peer].

Ferramentas para trabalhar com arquivos de configuração

  • Editores: VS Code, Sublime Text e IDEs da JetBrains possuem plugins para quase todos os formatos listados acima para fornecer destaque de sintaxe e validação.
  • Conversores CLI:
    • yq: Um processador de linha de comando portátil para YAML, JSON, XML, CSV e TOML (semelhante ao jq).
    • plutil: Integrado ao macOS para converter arquivos .plist.
    • terraform fmt: Para formatar arquivos .tf e .hcl.

Perguntas comuns (FAQ)

P: Posso usar comentários em um arquivo .env?

R: A maioria dos analisadores de .env (como dotenv no Node.js) suporta comentários começando com #. No entanto, é mais seguro colocar os comentários em suas próprias linhas em vez de na mesma linha.

P: Como faço para converter um .plist binário para XML?

R: No macOS, você pode executar: plutil -convert xml1 filename.plist.

P: Por que meu arquivo .ini tem [colchetes]?

R: Colchetes denotam uma Seção. Eles permitem agrupar configurações relacionadas, evitando colisões de nomes (ex: ter uma port em [http] e uma port diferente em [ssh]).

P: O .hcl é compatível com JSON?

R: Sim! O HCL foi projetado para ser totalmente compatível com JSON. Você pode escrever seus arquivos do Terraform em .tf.json se preferir (embora seja menos legível para humanos).


Ferramentas relacionadas no Tool3M

  • Formatador JSON: Formate e valide seus arquivos de configuração JSON.
  • Conversor YAML para JSON: Saiba mais sobre a relação entre formatos de dados comuns.