Comando yes: Automatizando Confirmações
O Que Você Vai Aprender
- O que o comando yes realmente faz
- Como responder automaticamente a prompts interativos como "Tem certeza? (y/n)"
- Por que o yes pode ser perigoso e como evitar problemas
- Alternativas mais seguras como a opção
-ydo próprio comando
Resumo Rápido
- Quer responder y a tudo ->
yes | comando - Mas prefira a opção
-ydo próprio comando quando houver (mais seguro) - Pare o yes com Ctrl + C
1. O Que É o Comando yes?
Conclusão: yes simplesmente imprime a letra
yrepetidamente, para sempre, até você pará-lo.
yes. O que ele faz? Ele diz "sim" por você?y repetidamente, infinitamente, até você pará-lo.y e não para. Deixa eu te dar a tecla de parada primeiro: pressione Ctrl + C para parar. Lembre disso, depois tente.Veja o que acontece (pare imediatamente com Ctrl + C):
$ yes
y y y y (continua ate voce pressionar Ctrl + C)
Executar yes sem argumentos imprime y para sempre. Não entre em pânico, basta pressionar Ctrl + C para parar. Isso não é um bug, é como o yes foi projetado para funcionar.
2. Por Que "Imprimir y Para Sempre" É Útil?
Conclusão: Para alimentar esse y automaticamente em comandos que ficam perguntando "Tem certeza? (y/n)".
y para sempre?|).rm pergunta "remover este? (y/n)" para cada um. Com 100 arquivos, são 100 vezes digitando y. É aí que o yes entra.Quando o yes brilha
Para comandos que pedem confirmação muitas vezes ("Tem certeza? (y/n)"), o yes fornece esse y automaticamente, para você não digitar de novo e de novo.
3. Resposta Automática Com Pipe: yes | comando
Conclusão:
yes | comandoalimenta umyautomático para cada promptUm símbolo (como $ ou #) exibido quando o shell está esperando sua entrada. de confirmação que o comando mostra.
Por exemplo, rm -i (interativo) pergunta antes de cada exclusão.
$ rm -i file1.txt file2.txt file3.txt
rm: remove regular file 'file1.txt'?
Em vez de digitar y a cada vez, redirecione yes para ele e cada prompt recebe um y automático.
$ yes | rm -i file1.txt file2.txt file3.txt
yes | na frente responde cada prompt por mim!y, e rm consome um por arquivo conforme deleta. Funciona não importa quantos prompts aparecem.Isso é prático mas também muito perigoso. Pular toda confirmação significa os arquivos errados são deletados sem perguntas. Sempre verifique o que o comando visa antes de executar. Cobrimos isso em "O Perigo do yes" abaixo.
4. Repetir Qualquer String: yes STRING
Conclusão: Passe um argumento ao yes e ele repete essa string em vez de
y.
yes não está limitado a y. Passe um argumento e ele repete essa string.
$ yes hello
hello hello hello (continua ate Ctrl + C)
Múltiplas palavras são juntadas com espaços em uma linha.
$ yes I am ready
I am ready I am ready (continua ate Ctrl + C)
Repetir linhas vazias (em vez de ficar apertando Enter)
yes "" repete linhas vazias (apenas quebras de linha). Útil para prompts onde você só precisa pressionar Enter repetidamente.
$ yes "" | command
5. Limitar a Contagem: yes | head
Conclusão: Redirecione yes para head para pegar um número fixo de linhas em vez de um fluxo infinito. Prático para dados de teste.
Quando saída infinita é um problema, use head para pegar apenas as linhas que precisa.
$ yes | head -n 5
y y y y y
O mesmo funciona com uma string personalizada. Você obtém texto repetido instantaneamente.
$ yes test | head -n 3
test test test
head em "pare aqui."head -n CONTAGEM para escolher exatamente quantas linhas você quer.6. O Perigo do yes
Conclusão: yes pula toda confirmação, então combiná-lo com operações irreversíveis como deletar ou sobrescrever convida ao desastre.
yes | parece uma solução mágica. Por que não usar para tudo?Combinações especialmente perigosas
yes | rm -ri directory/-- deleta o conteúdo sem confirmaçãoyes | command(ferramentas de sobrescrita / formatação) -- sobrescreve dados importantes sem confirmação
O prompt existe porque a confirmação importa. Antes de silenciá-lo com yes, sempre verifique exatamente o que o comando visa (quais arquivos, qual diretórioUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS.).
Não adicione yes | a um comando que você não entende completamente. Ao copiar e colar comandos da internet, tenha cuidado extra se yes | está na frente.
7. Alternativas Mais Seguras ao yes
Conclusão: Muitos comandos têm sua própria opção
-y/--yes. Prefira-a em vez de redirecionar yes.
Se você só quer pular confirmações, muitas vezes não precisa do yes. O próprio comando geralmente tem uma opção que significa "sim".
Opções integradas de pular confirmação (exemplos)
| Comando | Opção para pular confirmação |
|---|---|
apt |
-y / --yes |
dnf / yum |
-y |
cp / mv |
-f (force) |
rm |
-f (sem prompts) |
Exemplo: sudo apt install -y nome-do-pacote
-y em apt install -y literalmente significa "yes"!Regra geral
- Uma opção dedicada
-y/-fexiste -> use-a (seguro, intenção clara) - Nenhuma opção dedicada, ou pergunta repetidamente -> considere
yes |(após verificar o alvo)
8. Mini Exercícios: Tente Você Mesmo
Conclusão: Três exercícios sobre saída, limitar a contagem e strings personalizadas. Não esqueça o Ctrl + C.
Ctrl + C, então tente com confiança.Exercício 1: Execute yes sem argumentos, confirme que imprime y, depois pare com Ctrl + C.
Mostrar dica
Digite yes e pressione Enter. Quando a tela encher de y, pressione Ctrl + C.
Resposta exemplo
$ yes
Pare com Ctrl + C.
Exercício 2: Imprima a string OK exatamente 4 vezes.
Mostrar dica
Redirecione yes STRING para head -n CONTAGEM.
Resposta exemplo
$ yes OK | head -n 4
Exercício 3: Instale um pacote com apt pulando a confirmação, sem usar o comando yes.
Mostrar dica
Use a opção -y do próprio comando.
Resposta exemplo
$ sudo apt install -y nome-do-pacote
9. Modelos Para Copiar e Colar
Conclusão: Mantenha os padrões para resposta automática, limitar contagem, linhas vazias e alternativas seguras à mão.
Padrões comuns para ter à mão
# Responder y automaticamente a prompts (apos verificar o alvo) yes | command # Imprimir a mesma linha um numero fixo de vezes (dados de teste) yes | head -n 5 yes test | head -n 3 # Repetir linhas vazias (Enter) yes "" | command # [Recomendado] Pular confirmacao com opcao dedicada sudo apt install -y nome-do-pacote # Parar o yes Ctrl + C