Alexandre Gomes Gaigalas – 22 de Dezembro de 2025
Se você já executou um comando com a flag --dry-run, provavelmente sabia o que ela fazia. O comando era
executado, mas
não a coisa toda.
Mais especificamente, um dry run executa todas as partes, exceto as irreversíveis de uma operação.
Por exemplo, digamos que você tenha um programa de linha de comando chamado cleanup-database:
$ cleanup-database --help
usage: cleanup-database [options]
Removes old data from the database.
Options:
--dry-run Show what would be deleted, but don't actually delete anything
--force Actually delete the data
Quando você executa esse programa passando a flag --dry-run, ele mostra o que faria sem realizar
nenhuma alteração:
$ cleanup-database --dry-run
The following records would be deleted:
- Record ID 12345
- Record ID 67890
No changes have been made.
Isso é particularmente útil para comandos que executam ações destrutivas, como excluir arquivos ou modificar bancos de dados.
Dry runs não se limitam a ferramentas de linha de comando. Eles também podem ser encontrados em diversas bibliotecas e frameworks de programação, onde permitem que desenvolvedores simulem operações sem realizar alterações permanentes.
Quero dizer, por que não --simulate ou --preview? De onde vem afinal o termo "dry run"?
Ele vem do mundo da usinagem.
Primeiro, deixe-me mostrar o que realmente é um "wet run":
Essas operações são chamadas de "wet" porque um fluxo constante de fluido de lubrificação é necessário para que a operação ocorra suavemente.
Quando você está testando apenas os movimentos sem realizar nenhuma alteração de fato, não há atrito nem geração de calor, portanto o fluido de lubrificação não é necessário. Isso é um dry run, e é daí que o termo vem.