Qual é o ponto do comando 'sim'? [duplicado]

65

Esta questão refere-se ao comando yes encontrado em máquinas UNIX e Linux: Basicamente, qual é o ponto (se houver algum) e histórico desta ferramenta? Existem aplicações práticas para isso? Um exemplo pode ser mostrado onde é útil em um script ou encadeado (via pipe ou redirecionado) com outra ferramenta?

A página do manual está abaixo:

YES(1)                    BSD General Commands Manual                   YES(1)

NAME
     yes -- be repetitively affirmative

SYNOPSIS
     yes [expletive]

DESCRIPTION
     yes outputs expletive, or, by default, ''y'', forever.

HISTORY
     The yes command appeared in 4.0BSD.

4th Berkeley Distribution        June 6, 1993        4th Berkeley Distribution

Exemplo de saída:

$ yes why
why
why
why
why
^Cwhy
    
por Jaryd Malbin 25.11.2013 / 09:11

3 respostas

85

Geralmente é usado como uma maneira rápida e suja de fornecer respostas para um script interativo:

yes | rm -r large_directory

não perguntará sobre qualquer arquivo removido. É claro que, no caso de rm , você sempre pode fornecer -f para fazer com que ele remova a remoção do diretório, mas nem todas as ferramentas são tão complacentes.

Atualizar

Um exemplo mais relevante disso que me deparei recentemente é quando você está fsck em um sistema de arquivos e não quer se incomodar em responder y quando solicitado antes de corrigir cada erro:

yes | fsck /dev/foo
    
por 25.11.2013 / 09:22
21

Além do ponto principal mencionado na resposta anterior , o comando yes também pode ser usado para testar cargas de CPU em um sistema. yes cria um processo que age como um carregador de CPU fictício e resulta em 100% de uso do processador. link

    
por 25.11.2013 / 09:21
9

Ao atualizar as portas em uma estação de trabalho FreeBSD, usando o portmaster + yes torna-se muito útil:

yes | portmaster -da

Dessa forma, você pode deixar a máquina atualizar enquanto almoça e todas as perguntas preenchem o padrão para "y, sim"

Quando reconstruir o mundo para 'tornar a exclusão antiga' e 'tornar a exclusão da antiga-libs '.

essa é uma grande economia de tempo:

yes | make delete-old

e

yes | make delete-old-libs

Basicamente ajuda você a evitar digitar / confirmar certas operações que pedem um 'y' ou 'sim'

    
por 25.11.2013 / 13:23

Tags